
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
木構造で開始ノードSから目的ノードGを深さ優先探索と幅優先探索で探したときに調べるノードの個数を求める問題。
探索木を深さ優先・幅優先で探索したとき、Gに到達するまでに調べるノード数の組合せを選ぶ問題。
① 深さ優先=左の枝を下まで調べてから戻る、幅優先=浅い段から左から順に調べる。個数はSとGを含める
② 深さ優先: S→1段目左→その子2つ→1段目2番目→その子(その下も)→…→1段目3番目→G で10個。幅優先: S、1段目4個、2段目を左から数えてGが5個目 → 1+4+5=10個
③ ④
図の木で、Sの子は左から4つ、Gは3番目の子の下にある。深さ優先探索では、S、1番目の子とその子2つ、2番目の子とその子(さらにその子)ともう1つの子、3番目の子、Gの順に調べ、Gまでで10個。幅優先探索では、S(1個)、1段目の4個、2段目を左から調べてGが5個目となり、1+4+5=10個。したがって④が正しい。
深さ優先は左の部分木を全部調べてから右へ、幅優先は1段ずつ左から。個数を数えるときは、開始ノードと目的ノードを含めるかを問題文で確認する。
キーワード: 深さ優先探索、幅優先探索、木構造、探索、情報工学部門
同じ問題が計2回出題されています(平成27年度、令和元年度)。