樹状突起は、次の特性を持つ木です。
※つながっています。
※非周期です。
* ルート ノードが 1 つあります。
* ルート以外のノードはすべて、親ノードを 1 つだけ持ちます。
デンドロイドは、ファイル システムや組織階層などの階層データ構造を表すためによく使用されます。コンピュータ グラフィックスでは、木や植物などの分岐構造を持つオブジェクトを表現するためにも使用されます。
デンドロイドは、配列、リンク リスト、ツリーなどのさまざまなデータ構造を使用して表現できます。最も一般的な表現は隣接リストです。これはリストの配列であり、各リストには対応する親ノードの子ノードのインデックスが含まれます。
樹状突起内のノードからそのルートへのパスを見つけるには、ルート ノードに到達するまで親ポインターに従ってツリーをたどるだけで済みます。パスの長さはパス内のエッジの数に等しく、これはノードの祖先の数に等しくなります。
樹状突起の高さは、ノードからそのルートまでの最長経路の長さです。樹状突起の直径は、その部分木の高さの最大値です。
デンドロイドは、次のようなコンピューター サイエンスのさまざまな問題を解決するために使用できます。
* 2 つのノードの最も低い共通祖先を検索します。
* ノードからルートまでのパスを検索します。
* 木の高さと直径を調べる。
* ランダムな樹状図を生成します。
デンドロイドは、さまざまな階層データ構造を表すために使用できる多用途で効率的なデータ構造です。これらはコンピューターサイエンスで広く使用されており、豊富な数学理論があります。