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

データ構造のバイナリヒープ


ヒープまたはバイナリヒープは、バランスの取れたバイナリツリーデータ構造の特殊なケースです。これは完全な二分木構造です。したがって、l-1レベルまでは満杯であり、lレベルでは、すべてのノードが左からです。ここでは、ルートノードキーがその子と比較され、それに応じて配置されます。 aに子ノードbがある場合、-

key(a) ≥ key(b)

親の値は子の値よりも大きいため、このプロパティは最大ヒープを生成します。この基準に基づいて、ヒープには最大ヒープと最小ヒープの2つのタイプがあります。

これらはそれぞれ最大ヒープと最小ヒープの例です-

データ構造のバイナリヒープ


データ構造のバイナリヒープ


  1. データ構造における二分木ADT

    基本概念 二分木は、ノードが3つを超える子を持つことができないツリーとして定義されます。ノードの最高次数は2です。これは、二分木の次数が0または1または2であることを示しています。 上の図では、二分木はルートと2つのサブツリーTreeLeftとTreeRightで構成されています。二分木の左側にあるすべてのノードは左側のサブツリーと呼ばれ、二分木の右側にあるすべてのノードは右側のサブツリーと呼ばれます。 実装 二分木には最大2つの子があります。それらに直接ポインタを割り当てることができます。ツリーノードの宣言は、ノードがキー情報に加えて他のノードへの2つのポインタ(左と右)を含む構

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

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