過去問解きまくり研究所 ホーム

平成23年度 特別 午前 問5

データ構造

2分探索木に関する問題

空の2分探索木に,8,12,5,3,10,7,6 の順にデータを与えたときにできる2分探索木はどれか。

〔選択肢の4つの木(○=節点・線=枝/親→子の関係を読み取って列挙した)〕
 ア  8 の左=5,右=10 / 5 の左=3,右=6 / 10 の左=7,右=12
 イ  8 の左=5,右=10 / 5 の左=3,右=7 / 7 の左=6 / 10 の右=12
 ウ  8 の左=5,右=12 / 5 の左=3,右=6 / 3 の右=7 / 12 の左=10
 エ  8 の左=5,右=12 / 5 の左=3,右=7 / 7 の左=6 / 12 の左=10
答えと解説を見る

✓ これが正解エ(上記エの木)

解説

先に与えた値ほど根に近く、後の値がその下に付きます。

2分探索木では、新しい値を入れるとき必ず根から比べ始めます。いま見ている節点より小さければ左へ、大きければ右へ降り、降りた先が空いていればそこに置きます。すでに置かれた節点は動かしません。ですから先に与えられた値ほど上に残り、後から来た値は必ずその下にぶら下がります。最初の8が根になり、次の12が右の子、その次の5が左の子と決まった時点で、根の両側の子はもう変わりません。残る3、10、7、6は、それぞれの側をさらに降りて空いた場所に収まります。判定の軸は、与えられた順序が上下の関係にそのまま表れているか、そして左右の振り分けが値の大小と食い違っていないかの二点です。

ほかの選択肢はなぜ違うのか

出典:平成23年度 特別 基本情報技術者試験 午前 問5

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)