Java--バイナリ/バイナリバランス/ブラックツリー/ B木/ B +木

まず、木の定義:

  階層関係のセットは、ノードで構成、ツリーは、ツリーと呼ばれている限り、

  ツリーラインとアーティファクト:https://www.cs.usfca.edu/~galles/visualization/

第二に、バイナリツリー:

  特性:1)サブツリーを残したすべてのノードの値は、ルートノードの値未満です。

    2)右の部分木は、ルートノードとその値のすべてのノードの値よりも大きいです。

  例:良い鎖構造を形成します。

  

第三に、バランスの取れたバイナリツリー(AVL):

  特性:二分木に基づいて、1を超えてはならない2つのサブツリーの差の高度が必要1)。

    1)各欠失は、バイナリツリーのバランスが一つ以上の回転によるものであろう。

  例:123456ノードを再挿入。

  

第四に、赤黒木:

  特性:黒または赤のいずれか1)ノード。

    2)タイミング黒根;

    3)すべてのリーフノードがnull、およびブラックです。

    2つのつの子ノード4)赤のノードは、赤色連続しない2つの黒いありません。

    5)パス上のブラックの任意のノード、時定数に等しいです。

  PS: JavaのterrMapとTreeSetの赤黒木が達成されます。

  

五、B木/ B +木。

  1)各ノードは複数の値を有し、2つのバイナリビット、三叉神経の3つが、この値を超えると、分子のノードを必要とします。

  2)バランスノードの深さを読み取ることIOパスの数を減らすことが可能に減少。

  3)記憶ノードにバランスデータが決定され、それは高速です。

  

六、B +木

  MySQLのインデックスであるB +木達成します。

  特徴: 1)は、非子葉ノードデータ、インデックスのみが存在しません。

    2)にかかわらず、チェックデータの、葉ノードから取得しなければならないように、回数各クエリは同じです。

    3)一度だけ、ハッシュ演算をインデックスのMySQLの値を読み取るので、速度がBツリーよりも高速です。

 

おすすめ

転載: www.cnblogs.com/Tractors/p/11275422.html