web-dev-qa-db-ja.com

Treeデータ構造の観点から見た「Order」と「Degree」の違いは何ですか

Bツリー定義 では、「順序」という用語を使用します。

According to Knuth's definition, a B-tree of order m is a tree which satisfies the following properties:

1. Every node has at most m children.
...

そして 'Degree'は Tree terms で次のように定義されます:

Degree – number of sub trees of a node.

それで、彼らは同じものですか?違いは感じません。

8
yountae.kang

Degreeは、Bツリーのノードが持つことができる子の数の下限を表します(ルートを除く)。つまり、可能な最小の子供の数。一方、Orderは子の数の上限を表します。すなわち。可能な最大数。

B Orderに関するBツリープロパティ

B Tree properties with respect to the order.

NOTEウィキペディアにもこれらが記載されています

次数に関するBツリープロパティ

次数に関するBツリープロパティ

NOTEThese can also be found in the CLRS book

10
h8pathak

Bツリーの一般的な定義は2つあります。

  • Knuth OrderOrder)はKnuthの定義で使用されます
  • CLRS DegreeDegree)は、 Cormen et al in Introduction to Algorithms (CLRS)

Knuth orderCLRS度メジャーの両方:最小<=子<= max 、最小および最大の子、( min max )、それぞれツリーの内部ノードが持つことが許可されています。両方の定義は、 min max/2 未満であってはならないことに同意しています。

Knuth Order, k |  (min,max)  | CLRS Degree, t
---------------|-------------|---------------
     0         |      -      |        –
     1         |      –      |        –
     2         |      –      |        –
     3         |    (2,3)    |        –
     4         |    (2,4)    |      t = 2
     5         |    (3,5)    |        –
     6         |    (3,6)    |      t = 3
     7         |    (4,7)    |        –
     8         |    (4,8)    |      t = 4
     9         |    (5,9)    |        –
     10        |    (5,10)   |      t = 5

主な類似点/相違点:

  • Knuthオーダーkは、 maximum 子の数をカウントするインデックスです。 Knuthオーダーのkは、すべてのノードがmax = k、およびa min = ceil(k/2)を持つ必要があることを意味します。たとえば、(3,6)はKnuthオーダー6のBツリーです。
  • CLRS次数tは、 minimum 子の数を数えるインデックスです。 CLRSの次数tは、すべてのノードが最小= tおよび最大= 2tでなければならないことを意味します。たとえば、(3,6)はCLRS次数3のBツリーです。
  • どちらの定義でも、min = ceil(max/2)およびmax = 2 * minの場合です。
  • どちらの定義でも、キーの数は子の数と等しい場合ですマイナス1 。したがって、Knuth OrderとCLRS度の両方が、技術的には最小値と最大値もカウントします keys –同時に最小値と最大値をカウントします children

  • Knuthの定義では、ツリー(min、max)が許可されます。ここで、max anは odd integer ですが、CLRSの定義では無視されます。 (t、2t-1)という形式のツリーはCLRSの定義では無効です。たとえば、(min、max)=(5,9)のツリーはKnuthの定義では有効ですが、CLRSの定義では無効です。


興味深いもの:

  • どちらの定義にも 2-3-4 trees が含まれています。これは(min、max)=(2,4)のツリーです。これは、Knuth次数k = 4のBツリーであり、次数t = 2のCLRS Bツリーです。これらのツリーは Red-Black Trees と密接に関連しています。
  • Knuthの定義のみが含まれます 2-3木 、ここで(最小、最大)=(2,3)。 2-3ツリーは、Knuth次数k = 3のKnuth Bツリーです。これは有効なCLRS Bツリーではありません。 CLRSが AA trees と密接に関連しているため、このツリーが含まれていないのは残念です。
4
James Lawson

Bツリーは特定のタイプのツリーで、ノードごとに最大数の子があります。 Bツリーのorderが最大です。たとえば、バイナリ検索ツリーの順序は2です。

nodedegreeは、その子の数です。したがって、Bツリーのすべてのノードの次数は0以上で、Bツリーの次数以下です。

ツリーには、ノードに次数があることを除いて、「次数」はありません。したがって、ツリーには最大次数と最小次数があり、ノードの最大次数と最小次数を参照します。

同様の質問 ここ

お役に立てば幸いです。

3
Max Blum