木構造
木構造とは
一つひとつの要素をノード(節点)とよび、それぞれのノードが複数の子ノードに枝分かれしていくようなデータ構造を木構造という
木構造の例
https://gyazo.com/d583b776e5db74174185d075e6a08784
図は、S. Raschkaほか『Python機械学習プログラミング』(2020)より引用
木構造における用語
つながったノード同士は親子関係を持つ
親ノードからは複数の子ノードを持てる
子ノードはただ一つの親ノードをもつ
親ノードをもたないノードを根(root)ノードという(上の図でいう一番上のノード)
子ノードをもたないノードを葉(leaf)ノードまたは終端(terminal)ノードという
終端ノードでないノードは非終端ノードまたは内部ノードという
根ノードからあるノードまでのリンク(エッジ、枝)の数を深さという
上の例だと、「家にいる」までの深さは1、「海に行く」までの深さは2、といった感じ
木の最大の深さ(木全体の深さ)は3となる
二分木
ひとつの親ノードがもつ子ノードが最大でも2つしかない場合の木をとくに二分木という