tree

Tree in graph theory

グラフ理論では、閉路のない連結グラフを木といいます。

グラフは辺(edge)で連結された頂点(vertex)の集合です。 辺は頂点の組で表されます。 組になる頂点に順序があれば有向グラフ、なければ無向グラフといいます。 ある頂点から他の頂点にいたる辺の列をパスといいます。 自分自身に戻ってくるパスが閉路(loop)です。 グラフに含まれる任意の2頂点にパスが存在する場合、連結グラフといいます。

右の図では、2-4-5-6-2 という閉路がありますが、このどこかを切れば木になります。

Tree in computer science

コンピュータ・サイエンスにおける木は、階層をもった節 (節点、ノード node)の集まりです。

階層は、ノードの親子関係で表現されます。 木には根(root)と呼ばれる親のないノードが1つあります。それ以外のノードには親が1つあります。 各ノードには、子ノードがなくても、いくつあってもかまいません。 子のないノードを葉(leaf)と呼びます。

木を図示する場合、親ノードを上に、子ノードを下に書き、線(枝という)で結びます。 したがって根が上に、葉が下になります。

右の図では、オレンジ色のノードが根、空色のノードが葉です。

ノードから根までの段数(枝の数)をそのノードの深さといいます。 深さの最大値を木の高さといいます。 右の図の木の高さは3です。


木の種類と性質

tree-3.gif

木の形やノード間の制約によって様々に分類されます。


木の操作

一般の木について、次のような操作があり様々なアルゴリズムが発表されています。 プログラム例は、2分探索木の挿入と削除の例 あるいは、赤黒木のプログラム例 を参照してください。

木の表現

木を表現する方法にもいろいろあります。

Top Page
更新日:2006-02-18