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

データ構造の線形プロービング


このセクションでは、オープンアドレッシングスキームでの線形プロービング手法とは何かを説明します。通常のハッシュ関数h´(x):U→{0、1、。 。 。、m –1}。オープンアドレッシングスキームでは、実際のハッシュ関数h(x)は通常のハッシュ関数h’(x)を取り、それに別の部分を付加して1つの線形方程式を作成します。

h´(𝑥)=𝑥𝑚𝑜𝑑𝑚

ℎ(𝑥、𝑖)=(ℎ´(𝑥)+𝑖)𝑚𝑜𝑑𝑚

i|の値=0、1 、。 。 。、m – 1.したがって、i =0から開始し、1つの空き領域が得られるまでこれを増やします。したがって、最初にi =0の場合、h(x、i)はh´(x)と同じになります。

サイズ20(m =20)のリストがあるとします。いくつかの要素を線形プロービング方式で配置したいと思います。要素は{96、48、63、29、87、77、48、65、69、94、61}

データ構造の線形プロービング

ハッシュテーブル

データ構造の線形プロービング


  1. データ構造のB+ツリー

    ここでは、B+ツリーとは何かを確認します。 B +ツリーは、Bツリーの拡張バージョンです。このツリーは、Bツリーのより良い挿入、削除、および検索をサポートします。 Bツリー、キー、およびレコード値は、内部ノードとリーフノードに格納されます。 B +ツリーレコードでは、リーフノードに保存できます。内部ノードはキー値のみを保存します。 B+ツリーのリーフノードもリンクリストのようにリンクされています B+ツリーの例 − これは、検索、挿入、削除などの基本的な操作をサポートします。各ノードで、アイテムが並べ替えられます。位置iの要素には、その前後に子があります。したがって、以前に痛んだ

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

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