# T: 最短路徑樹 # 圖形 g 與起點 s dijkstra(g, s): PriorityQueue que # 以 (暫定距離, 節點編號) 為元素的優先佇列 for v ← 0 to g.N-1: dist[v] ← INF dist[s] ← 0 在 que 中插入 (0, s) while not que.empty(): cost, u ← que.extractMin() # 取出元素並將 2 個值分別指定給 cost 及 u if dist[u] < cost: continue 將 u 新增到 T 內 for e in g.adjLists[u]: if e.v 包含在 T 中 : continue if dist[e.v] > dist[u] + e.weight dist[e.v] ← dist[u] + e.weight 在 que 中插入 (dist[e.v], e.v) parent[e.v] ← u