プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造のBツリー


ここでは、Bツリーとは何かを確認します。 Bツリーは特殊なm-way探索木です。これは、ディスクアクセスに広く使用できます。次数mのBツリーは、最大m-1個のキーとm個の子を持つことができます。これにより、1つのノードに多数の要素を格納できます。そのため、高さは比較的小さいです。これは、Bツリーの大きな利点の1つです。

B-Treeには、1つのm-wayツリーのすべてのプロパティがあります。他にもいくつかのプロパティがあります。

  • Bツリーのすべてのノードは最大m個の子を保持します

  • ルートとリーフを除くすべてのノードは、少なくともm/2の子を保持できます

  • ルートノードには少なくとも2つの子が必要です。

  • すべてのリーフノードは同じレベルである必要があります

Bツリーの例

データ構造のBツリー

これは、検索、挿入、削除などの基本的な操作をサポートします。各ノードで、アイテムが並べ替えられます。位置iの要素には、その前後に子があります。したがって、以前に痛んだ子供は小さい値を保持し、右側にいる子供は大きい値を保持します。


  1. データ構造のBツリークエリ

    ここでは、Bツリーで検索を実行する方法を説明します。 Bツリー検索は、Bツリークエリとも呼ばれます。以下のようなBツリーがあるとします- Bツリーの例 − 検索手法は、二分探索木と非常によく似ています。上記のツリーから66を検索するとします。したがって、ルートから開始します。66はルート要素46よりも大きくなります。したがって、ルートの右の子に移動します。次に、適切な子には複数の要素があります。要素はソートされており、[56、81]です。ターゲットキーは56より大きく、81より小さいので、56から81の間にあるサブツリーに入ります。次に、リーフレベルに移動しました。その時点で、要素6

  2. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ