アルゴリズム・プログラミング応用問題

幅優先探索(BFS)を使って重みなし連結グラフの単一始点最短経路を求めている途中で、始点からの距離が同じノードが複数存在した場合、それらのノードはキューの中でどのような位置関係になるか。

A.距離が同じノードは必ずキューの先頭にまとめて格納される
✗ 同距離ノードは先頭ではなく、現在処理中の層の後ろにまとまってエンキューされます。先頭には限定されません。
B.距離が同じノードは同じキュー内の層(レイヤー)にまとまって存在する← 正解
✓ 正解です。BFS はキューを使い距離順に処理するため、同じ距離のノードは連続した層(レイヤー)としてキュー内にまとまって存在します。
C.距離が同じノードはランダムな位置に散在し、順序は保証されない
✗ BFS のキューは到達順に厳密に管理されるため、同距離ノードは散在せず同一層にまとまります。
D.距離が同じノードはスタックに移され、後で処理される
✗ BFS はキューのみを使用します。スタックを使うのは DFS であり、BFS の処理とは異なります。

基本情報技術者試験 の問題一覧