2016-12-05 10 views
0

OK、以下のスクリーンショットはRツリーです。ルートにはR1とR2があります。 R1の左側にはr3、r3、r5があります。何故ですか?私は、ルート要素の左側の要素は、より小さいと考えました。ルート上のルート要素がR6の場合は、R3、R4、R5を左に置くと意味があります。私が今まで知っている限り、B +とB-木はそのルールに従います。Rツリーが順序付けられていないのはなぜですか?それでもBツリーのルールに従うと言われています

また、葉ノードで、R12などの後に空白があるのはなぜですか?よくわかりません。

enter image description here

+0

誰かが助けることができますか? – coder85

答えて

2

BツリーとRツリーは全く異なる概念に基づいています。似たような名前と、高いランダムアクセス時間を持つディスクに格納できるように、高い数字があるn - アリティが共通していることはほとんどありません。

  1. Bツリーには、自然順序付けられた1次元の値が格納されます。 Rツリーには多次元の値が格納されますが、これらは自然順序付けできません。 (どのようにx/yの座標をペアにするつもりですか?)。

  2. Bツリーは要素自体を格納し、Rツリーは人工的に構築されたバウンディングボックスの座標を格納します。上記の画像内のR iはランダムなラベルに過ぎません。好きな名前で置き換えることができます。

  3. BツリーとRツリーの接続は、絶対的に異なる関係を意味します。

    N いくつかのBツリーのノードを格納した場合の値は、それが配置されているN +1ポインタ(意味的に)間の隣接する値を有します。例えば、あるポインタが値25と70との間に位置する場合、26から69までの要素を格納することができるサブツリーにつながる。したがって、Bツリーの接続は、を意味するリレーション。 Nバウンディングボックス一部Rツリーノードを格納座標場合

    は、それはまた、より低いレベルへNポインタ、各バウンディングボックス1つずつ有しています。一部のポインタがR iに属している場合は、R iに関連するすべての内側境界ボックスを含むサブツリーにつながります。これは「包含する」関係の一種です。

はBとR木間のさらなる違いを理解するには、(長方形の線分に縮退されている)単一の次元数を記憶するR-ツリーを構築し、Bツリーにそれを比較することができます。

あなたの最初の質問に答えてください:R1はR3、R4またはR5より小さくはありません。これらはそれぞれの矩形のラベルです。代わりに、R3、R4およびR5はR1の一部である。

なぜ空き領域があるのか​​ - これはツリーを構成するアルゴリズムに依存します。異なるアルゴリズムと異なる挿入/削除の順序は、同じ要素のセットを含む異なるツリーに終わる可能性があります。 (Bツリーの場合も同様です。)

+0

したがって、r3、r4、r5も左に置くことができますか?必須ではない? – coder85

+0

Gudok、Rツリーの挿入と削除はどのように機能しますか?私がオンラインで見た説明はとても曖昧です。彼らはそれを詳しく説明していません。 – coder85

+0

はい。 RiがRjより大きいとは言えません - 単に長方形に対して定義された関係はありません。しかし、R1がRjに含まれていると言うことができます。そのため、R3、R4、R5はR1をルートとするサブツリーにあります。各ノードの内部の値は、(Bツリーのように)ソートされたリストではなく、* set *として考えてください。 R3、R4、R5をR5、R3、R4に簡単に並べ替えることができます。実用的なインプリメンテーションは、探索を高速化するために、何らかの形でノード内の矩形を順序付けします(典型的なノードは、上記のイメージのように3つだけではなく数千の矩形を含むことがあるため)。 – gudok

0

1次元データのみが順序付けられます。

のアイデアは、Rツリーの分割をBツリーに類似しているバランシング。 Rツリーは同様に最小ページの塗りつぶしなどを保証する。ページの概念も同様である。

しかし、Bツリーはリニアノードの順序を使用しますが、R-treeは多次元データが順序付けられていないため、線形順序ではなく境界ボリューム階層を使用します。 Rツリーには「左」または「右」はありません。

関連する問題