木構造(きこうぞう)
木構造(きこうぞう / ツリー構造)は、1つの「根(ね)」から枝分かれするようにデータを配置したデータ構造です。
木構造の仕組みとイメージ
木構造は、植物の木を「上下逆さま」にした形、あるいは会社の「組織図」や家系の「家系図」をイメージすると分かりやすいです。
- データの1つ1つをノード(節・要素)と呼びます。
- ノード同士を結ぶ線をエッジ(枝)と呼びます。
木構造の専門用語
木構造の問題では、場所(ノードの種類)を表す専門用語が必ず出題されます。
- 根(ルート:Root)
- 木の一番上にある、スタート地点のノードです。親はいません。
- 葉(リーフ:Leaf)
- 木の一番末端にあるノードです。ここから先の子はいません。
- 親ノード / 子ノード
- 上下でつながっている関係です。上にあるのが「親」、下にあるのが「子」です。
- 部分木(ぶぶんき)
- 大きな木構造の中から、一部のノードとそこから下のつながりだけを切り出した小さな木のことです。
二分探索木(にぶんたんさくぎ)
試験で最も狙われるのが、二分探索木(にぶんたんさくぎ)という特別なルールを持った木構造です。
💡 二分探索木のルール
すべてのノードにおいて、子ノードが以下のルールで並んでいます。
- 親より小さいデータは、すべて左側の子へつなぐ
- 親より大きいデータは、すべて右側の子へつなぐ