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

データ構造の最大ヒープへの挿入


ここでは、バイナリ最大ヒープデータ構造から要素を挿入する方法を説明します。最初のツリーが次のようになっていると仮定します-

データ構造の最大ヒープへの挿入

挿入アルゴリズム

insert(heap, n, item) −
Begin
   if heap is full, then exit
   else
      n := n + 1
      for i := n, i > 1, set i := i / 2 in each iteration, do
         if item <= heap[i/2], then break
         heap[i] = heap[i/2]
      done
   end if
   heap[i] := item
End

30をヒープに挿入するとします-

データ構造の最大ヒープへの挿入


  1. データ構造へのBツリーの挿入

    ここでは、Bツリーへの挿入を実行する方法を説明します。以下のようなBツリーがあるとします- Bツリーの例 − 要素を挿入するための考え方はBSTと非常に似ていますが、いくつかのルールに従う必要があります。各ノードにはm個の子と、m-1個の要素があります。 1つのノードに要素を挿入する場合、2つの状況があります。ノードの要素がm-1未満の場合、新しい要素がノードに直接挿入されます。 m-1個の要素がある場合は、すべての要素と挿入される要素を取得し、それらの中央値を取得します。同じ基準を実行して中央値をそのノードのルートに送信し、2つ作成します。ノードの左半分と右半分からリストを分離する

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

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