//初期化
var 頂点のスコア = [0,∞,∞,...,∞]
(→スタートから各頂点までの暫定距離)
var 直前の頂点 = [なし,なし,なし,...,なし]
(→どこから来たか)
var 処理済み = [未,未,未,...,未]
(→調べ終わったら「済」にする)
//処理
while 未処理の頂点がある
var 現在位置 = スコアが最小の頂点
for each 未処理の隣接点
var 暫定スコア = 現在位置のスコア
+ 隣接点までの距離
if 隣接点のスコア>暫定スコア
隣接点のスコア = 暫定スコア
隣接点の直前の頂点 = 現在位置
現在位置を処理済みにする
終了