シンボル
データ | ||
---|---|---|
始点から各ノードへの暫定最短距離 | dist | |
ノード番号 | nodeId | |
最短経路木における親 | parent | |
ノード間の距離 | weight |
始点を決定 | ||
---|---|---|
始点の距離を0に初期化します。 | dist[s] ← 0 | |
その他のノードの距離を大きな値に設定します。 | dist[v] ← INF | |
最短経路木の構築 | ||
ヒープから取り出された最適なノードを指します。 | u | |
隣接するノードを訪問して距離を更新します。 | 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 | |
最短経路木の暫定エッジを表します。 | (v, parent[v]) | |
最短経路木を拡張していきます。 | Tに含まれるノード | |
最短経路木を出力 | ||
親の情報から最短経路木を構築します。 |
アニメーション
始点を決定
最短経路木の構築
最短経路木を出力