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. 結論

この記事では、ツリーデータ構造の観点から順序と次数の違いについて説明しました。 それぞれの用語を定義し、それを説明するための例を提供しました。 最後に、ツリーデータ構造の次数を計算するためのアプローチを提供し、その実装と時間計算量について説明しました。