IPA過去問ドリル

平成26年度 秋期 応用情報技術者試験 午前 問4

テクノロジ/アルゴリズム

配列 A[1],A[2],…,A[n] で,A[1] を根とし,A[i] の左側の子を A[2i],右側の子を A[2i+1] とみなすことによって,2分木を表現する。このとき,配列を先頭から順に調べていくことは,2分木の探索のどれに当たるか。

出典:平成26年度 秋期 応用情報技術者試験 午前 問4

正解:エ

解説

配列でA[i]の子をA[2i],A[2i+1]とする表現は,2分木の各階層を上から左右の順に並べたものです。配列を先頭から順に調べることは,根から始めて同じ階層のノードを左から右へ,階層順に処理することに相当するため,幅優先探索(レベル順探索)に当たります。

選択肢ごとの解説

  • 誤り。行きがけ順深さ優先探索は,根を訪問した直後に左部分木全体を先に深く探索する順序であり,配列を先頭から読む順序とは異なります。
  • 誤り。帰りがけ順深さ優先探索は,子を全て訪問した後に親を処理する順序であり,配列の添字順とは対応しません。
  • 誤り。通りがけ順深さ優先探索は,左部分木,親,右部分木の順に処理するもので,配列の添字順とは対応しません。
  • 正しい。配列の添字順は階層ごとに左から右へ並ぶため,幅優先探索に相当します。
応用情報技術者の過去問を演習モードで解く