木構造
階層の上位から下位に節点をたどることによって、データを取り出すことができるデータ構造。
○の部分は節(ノード)、節と節を繋いだ「—」の部分は枝(ブランチ)、最上位の節は根(ルート)、最下位の節は葉(リーフ)という。
また、上位の節を親、下位の節を子といい、節にぶら下がっている部分を部分木、左側を左部分木、右側を右部分木という。
2分木の種類
全ての枝の分岐が二つ以下の木構造。
完全2分木
根から葉までの深さが全て等しい2分木のこと。
※深さが一つだけ深い葉があり、木の左側から詰められているものも完全二分木とする。
2分探索木
各節において「左の子<親<右の子」という関係をもった2分木のこと。
ヒープ木
各節において、「親>子」「子>親」という関係をもった完全二分木。「子>親」の時、根の値が最小値となる。「親>子」の時、根の値が最大値となる。
逆ポーランド記法(後置記法)
2分木を使って算術式を表記する方法の一つで、節に演算子、葉に被演算数を配置。
「左部分木」->「右部分木」->「節点」の順に取り出す。
B木
枝の分岐が二つ以上あり、データ挿入時は根から葉までの深さが同じになるように分割させる。
B+木は、葉のみにデータを持たせる