ツリーの順序と次数の違い
1. 概要
このチュートリアルでは、ツリーデータ構造の観点から順序と次数の違いについて説明します。
まず、ツリーの順序を定義し、それを説明する例を示します。 次に、ツリーの次数を定義し、それを計算してその実装と時間計算量を実行するためのアプローチを示します。
2. ツリーの順序
2.1. 意味
ツリーの順序は、ツリーのノードが持つことができる子の最大数を表します。 したがって、 B-Tree の順序があると言うとき、それはそのB-Treeのすべてのノードが最大の子を持つことができることを意味します。
2.2. 例
ِA 二分探索木は、各二分探索木ノードに最大2つの子があるため、次数2のツリーです。
次数3のBツリーでは、そのすべてのノードに最大3つの子があります。
3. 木の程度
3.1. 意味
ツリーの次数は、ツリー内のノードの最大次数を表します。 特定のノードを思い出してください。その次数は、その子の数と同じです。
したがって、ツリーの次数を取得するには、ツリートラバーサルメソッドの1つを使用して、ツリーのすべてのノードを反復処理します。 次に、ノードごとに、そのノードの子の数に等しい次数を計算します。
最後に、ツリーの次数は、すべてのノードの次数の中で最大の次数です。
3.2. アルゴリズム
アルゴリズムの実装を見てみましょう。
最初に、DFSトラバーサルを使用して指定されたツリーの次数を返す関数があります。 関数には2つのパラメーターがあります。 最初のノードは現在のノードを表し、2番目のノードは指定されたツリーを格納する隣接行列です。
まず、宣言します。その初期値は、現在のノードの子を格納するリストのサイズである現在のノードの次数に等しくなります。
次に、現在のノードの子を反復処理し、子ごとに関数を呼び出すため、関数はでルート化されたサブツリーの最大次数を返します。 次に、サブツリーの次数で電流を最大化しようとします。
最後に、指定されたツリーの次数を返します。
3.3. 複雑
前のアプローチの時間計算量はです。ここで、は特定のツリー内のノードの数であり、はツリーのエッジの数です。 この複雑さの背後にある理由は、各ノードとエッジを最大で1回だけ反復するためです。これは、DFSトラバーサルの複雑さと同じです。
ツリーのエッジの数はに等しいので、複雑さはであると言えます。
4. 結論
この記事では、ツリーデータ構造の観点から順序と次数の違いについて説明しました。 それぞれの用語を定義し、それを説明するための例を提供しました。 最後に、ツリーデータ構造の次数を計算するためのアプローチを提供し、その実装と時間計算量について説明しました。