応用情報技術者 2017年 秋期 午前2 問05
問題文
配列で、を根とし、の左側の子を、右側の子をとみなすことによって、2分木を表現する。このとき、配列を先頭から順に調べていくことは、2分木の探索のどれに当たるか。
選択肢
ア:行きがけ順 (先行順) 深さ優先探索
イ:帰りがけ順 (後行順) 深さ優先探索
ウ:通りがけ順 (中間順) 深さ優先探索
エ:幅優先探索(正解)
配列による二分木表現と探索方法【午前2 解説】
要点まとめ
- 結論:配列を先頭から順に調べる操作は幅優先探索に該当します。
- 根拠:配列の添字規則により、親ノードから順に左子・右子が続くため、レベルごとにノードを訪問する幅優先探索と一致します。
- 差がつくポイント:深さ優先探索は再帰的に子ノードを辿るため配列順とは異なり、配列順=幅優先探索と理解することが重要です。
正解の理由
配列の添字規則は、を根とし、が左の子、が右の子となっています。この構造は完全二分木のレベル順(幅優先)でノードを格納する方法です。したがって、配列を先頭から順に調べることは、根から始めて同じレベルのノードを左から右へ順に訪問する幅優先探索に対応します。深さ優先探索(行きがけ順・帰りがけ順・通りがけ順)はノードの訪問順が異なり、配列の順序とは一致しません。
よくある誤解
配列の順序を見て「行きがけ順(先行順)」などの深さ優先探索と混同しやすいですが、配列の添字規則はレベル順の訪問を表しています。深さ優先探索は再帰的に子ノードを辿るため、配列順とは異なります。
解法ステップ
- 配列の添字規則を確認し、が根であることを理解する。
- が左の子、が右の子であることから、ノードはレベル順に格納されていると判断する。
- 配列を先頭から順に調べる操作は、根からレベルごとにノードを訪問する幅優先探索に該当することを認識する。
- 深さ優先探索の3種類(行きがけ順・帰りがけ順・通りがけ順)と比較し、訪問順が異なることを確認する。
- よって正解はエの幅優先探索と結論づける。
選択肢別の誤答解説
- ア: 行きがけ順(先行順)深さ優先探索は、根→左→右の順に再帰的に訪問するため配列順とは異なります。
- イ: 帰りがけ順(後行順)深さ優先探索は、左→右→根の順で訪問し、配列順と一致しません。
- ウ: 通りがけ順(中間順)深さ優先探索は、左→根→右の順で訪問し、配列順とは異なります。
- エ: 幅優先探索はレベルごとに左から右へ訪問するため、配列の添字順と完全に一致します。
補足コラム
配列による二分木表現は完全二分木の構造を効率的に表現する方法で、ヒープ構造(ヒープソートなど)でよく用いられます。幅優先探索はキューを用いてレベル順にノードを訪問するアルゴリズムであり、配列の添字規則と親子関係が密接に結びついています。
FAQ
Q: なぜ配列の添字規則が幅優先探索に対応するのですか?
A: 配列は根からレベル順にノードを格納するため、添字順に調べることはレベルごとに左から右へ訪問する幅優先探索と同じ順序になります。
A: 配列は根からレベル順にノードを格納するため、添字順に調べることはレベルごとに左から右へ訪問する幅優先探索と同じ順序になります。
Q: 深さ優先探索は配列で表現できないのですか?
A: 深さ優先探索の訪問順は再帰的であり、配列の単純な添字順とは異なるため、配列順で表現するのは困難です。
A: 深さ優先探索の訪問順は再帰的であり、配列の単純な添字順とは異なるため、配列順で表現するのは困難です。
関連キーワード: 二分木、幅優先探索、深さ優先探索、配列表現、ヒープ

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

