木構造とは?きこうぞう
木構造とは、データどうしの上下関係を、節(ノード)と枝のつながりで表す構造。最上位で親を持たないものが根、末端で子を持たないものが葉、子の数が高々2個に制限されたものが2分木。出題は高さと節点数の関係、走査したときの出力順序、2分探索木かどうかの判定に集中する。
最終更新:2026-10-07
この語が出る過去問を解く →背景
一列に並べたデータは、目的の1件にたどり着くまで平均で半分を見ることになる。階層へ組み替え、1回の比較で候補を半分に落とせる形にすれば、件数が増えても比較回数は緩やかにしか増えない。ファイルシステムのディレクトリや構文解析の表現にも同じ形が使われるため、複数分野に顔を出す。
具体例
完全2分木なら高さは節点数nに対しておよそlog₂nで済み、100万件でも根から葉まで20段ほどしかない。コンパイラは式を木の形に直したうえで、中順にたどれば中置記法、後順なら逆ポーランド表記法という具合に、走査の順序を変えて表記を作り分ける。
試験での引っ掛け
単なる2分木と、左部分木<節<右部分木という順序制約のある2分探索木の混同が定番。走査の名前は節をいつ出力するかを指し、前順は節→左→右、後順は左→右→節になる。
関連用語
出た過去問
出典:平成29年度 秋期 高度試験 午前Ⅰ 問16(IPA)
モジュール設計に関する記述のうち、モジュール強度(結束性)が最も強いものはどれか。
正解:ある木構造データを扱う機能をこのデータとともに一つにまとめ、木構造データをモジュールの外から見えないようにした。
要点:モジュール強度が最強なのは情報的強度=データと操作の隠蔽
モジュール強度は、モジュール内の要素がどれだけ密接に関係しているかを表し、強いほど良い設計とされる。あるデータ構造とそれを操作する機能を一つにまとめ、内部構造を外部から隠すのは情報的強度で、最も強い区分にあたる。カプセル化の考え方そのものである。
出典:平成29年度 春期 高度試験 午前Ⅰ 問16(IPA)
汎化の適切な例はどれか。
正解:「哺乳類」を親とし,「人」「犬」「猫」を子とする木構造
要点:汎化はis-a関係、部品との関係は集約で別物
汎化は複数の具体的な概念に共通する性質を抽出して、より一般的な上位概念にまとめる関係である。人・犬・猫はいずれも哺乳類であるというis-a関係が成り立つので、汎化の例として適切である。全体と部分の関係(集約)や、属性を子に並べたものは汎化ではない。
出典:平成30年度 春期 高度試験 午前Ⅰ 問8(IPA)
関係データベースのテーブルにレコードを1件追加したところ、インデックスとして使う、図のB+木のリーフノードCがノードC1とC2に分割された。ノード分割後のB+木…
正解:中間ノードAから、B、C1、C2、Dの4つのリーフノードへポインタが伸びる。リーフノード同士はB↔C1↔C2↔Dの順に双方向リンクでつながる。
要点:B+木の分割後もリーフは同じ深さでキー順にリンクされる
B+木ではすべてのリーフノードが同じ深さに置かれ、リーフは親ノードから直接ポインタで指される。リーフCが分割されてC1とC2になった場合、両方とも親である中間ノードAの直下に並び、キー値の順序どおりに B→C1→C2→D とリーフ同士が順次リンクされる。中間ノードAには空きがあるので木の高さは変わらない。
出典・参考
公式シラバスの1 基礎理論 > 1. データ構造 > (2) データ構造の種類に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。