この問題は、二分探索木(BST)の性質に関するものです。二分探索木では、各節(ノード)の値は、その左の子孫に割り当てられる値よりも大きく、右の子孫に割り当てられる値よりも小さいという定義があります。この性質を利用して、節aと節bに割り当てられる値の範囲を特定します。
2016年度 春期 基本情報技術者 午前 問5
10個の節(ノード)から成る次の2分木の各節に、1から10までの値を一意に対応するように割り振ったとき,節a, bの値の組合せはどれになるか。ここで、各節に割り振る値は、左の子及びその子孫に割り振る値よりも大きく、右の子及びその子孫に割り振る値よりも小さくするものとする。
選択肢
解説
結論 → 詳細 → 補足 の 3 層構成
展開閉じる
解説
結論 → 詳細 → 補足 の 3 層構成
まず、節aは節bよりも左側にある節であり、かつ節bは節aの右側にある節です。二分探索木の性質から、節aの値は、その右側にある節bの値よりも小さくなければなりません。また、節bの値は、その右側の子孫(もしあれば)の値よりも小さく、左側の子孫(もしあれば)の値よりも大きくなければなりません。
選択肢アは a=6, b=7 です。a < b の関係は二分探索木の性質を満たしており、1から10までの値で一意に割り振るという条件も考慮すると、この組合せは可能性があります。
他の選択肢を見ていきましょう。選択肢イは a=6, b=8 です。これも a < b の関係を満たしており、一度は可能性がありそうに見えます。しかし、図表がないため節の構造を正確に把握できませんが、もし節aと節bの間にさらに子節が存在し、その子節の値がaとbの間に収まらない場合、この組合せは不適切になります。
選択肢ウは a=7, b=8 です。これも a < b の関係を満たしますが、同様に節の構造によっては不適切となる可能性があります。
選択肢エは a=7, b=9 です。これも a < b の関係を満たしますが、先述の理由と同様に、図表がないと判断が難しいものの、より大きな値が節bに割り当てられることで、満たせない制約が出てくる可能性があります。
二分探索木の定義に厳密に従い、かつ1から10までの値が一意に割り振られるという制約を考慮すると、節aの値は節bの値より小さくなければならず、かつ左右の子孫との関係も考慮すると、a=6, b=7 の組合せが最も妥当性が高いと考えられます。
この解説は AI 生成です(詳細)
解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。
AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。
解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。
分野「アルゴリズムとプログラミング」の学習ポイント
この問題の理解を「分野全体の力」に広げるための足がかり
- 何が問われるか
- 計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
- 学習の進め方
- 擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
- 関連キーワード
- 計算量二分探索クイックソート再帰スタックキュー木構造
この問題を AI と深掘りする
用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。
共有
ショート動画
関連する問題
アルゴリズムとプログラミング の他の問題
- 基本情報技術者2009年度 秋期 午前 問3逆ポーランド表記法(後置表記法)で、“EF-G-CD-AB+÷+”と表現される式はどれか。
- 基本情報技術者2009年度 秋期 午前 問5空のスタックに対して次の操作を行った場合、スタックに残っているデータはどれか。ここで、“push x”はスタックへデータを格納し、“pop”はスタックからデータを取り出す操作を表す。 push 1 → push 2 → pop → push 3 → push 4 → pop → …
- 基本情報技術者2009年度 秋期 午前 問6クイックソートの処理方法を説明したものはどれか。
- 基本情報技術者2009年度 春期 午前 問20000~4999 のアドレスをもつハッシュ表があり、レコードのキー値からアドレスに変換するアルゴリズムとして基数変換法を用いる。キー値が55550 のときのアドレスはどれか。ここで、基数変換法とは、キー値を 11 進数とみなし、10進数に変換した後、下4けたに対して 0.5 を…
- 基本情報技術者2009年度 春期 午前 問4文字列中で同じ文字が繰り返される場合、繰返し部分をその反復回数と文字の組に置き換えて文字列を短くする方法はどれか。