ITの基礎知識|ITパスポート・基本情報

基本情報技術者 令和7年公開問題 科目A 問3

2026.05.25

図の木構造は2分探索木である。a~g の値の大小関係として,適切なものはどれか。ここで,a~g の値は重複しないものとする。

  • ア a < b < d < e < c < f < g
  • イ d < b < e < a < f < c < g
  • ウ d < e < f < g < b < c < a
  • エ g < f < c < e < d < b < a

Show answer

正解: イ

解説:

2分探索木(Binary Search Tree)の定義は以下のとおりです。

  • 任意のノードの値 > そのノードの左部分木に含まれるすべての値
  • 任意のノードの値 < そのノードの右部分木に含まれるすべての値

この定義を問題の木に適用します。

ノード a はルートとなるので、各値との関係は以下の通りとなります。

  • b は a の左の子 → b < a
    • この時点で、b の子である d , e も a より小さいのは確定。 
    • [b, d, e] < a となる。
  • c は a の右の子 → a < c
    • この時点で、c の子である f , g も a より大きいのは確定。 
    • [c, f, g] > a となる。

ノード b の部分木では:

  • d は b の左の子 → d < b
  • e は b の右の子 → b < e
  • つまり、d < b < e となる。

よって、ここまでの情報を整理すると d < b < e < a という関係が確定します。

ノード c の部分木では:

  • f は c の左の子 → f < c
  • g は c の右の子 → c < g
  • つまり、f < c< g となる。

これらをまとめると:d < b < e < a < f < c < g となります。

なお,2分探索木には「中間順(通りがけ順)」で巡回すると,値が昇順に取り出せるという性質があります。

中間順(通りがけ順)は以下の順序で値を探索するアルゴリズムです。

  1. まず左側のノードに移動
  2. 左側に移動できなくなったらデータ出力
  3. 右側のノードに移動

この木を中間順に巡回すると d → b → e → a → f → c → g となり,正解と一致します。