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

最小-最大ヒープ


min-maxヒープは、最小(または偶数)レベルと最大(または奇数)レベルが交互に含まれる完全なバイナリツリーとして定義されます。偶数レベルは、たとえば0、2、4などとして示され、奇数レベルは1、3、5などとして示されます。

次のポイントでは、ルート要素が最初のレベル、つまり0にあると見なします。

最小-最大ヒープ

最小-最大ヒープの例

最小-最大ヒープの機能

  • 最小最大ヒープ内の各ノードは、最小最大ヒープ内のノードの順序を計算するために値が実装されているデータメンバー(通常はキーと呼ばれます)に関連付けられています。
  • ルート要素は、最小-最大ヒープの最小要素です。
  • 2番目のレベルの2つの要素の1つである最大(または奇数)レベルは、最小-最大ヒープの最大要素です
  • yを最小-最大ヒープ内の任意のノードとします。
  • yが最小(または偶数)レベルの場合、y.keyは、ルートyを持つサブツリー内のすべてのキーの中で最小のキーです。
  • yが最大(または奇数)レベルの場合、y.keyはルートyを持つサブツリー内のすべてのキーの中で最も高いキーです。
  • 最小(最大)レベルのノードは、最小(最大)ノードとして示されます。

max-minヒープは、min-maxヒープの反対として定義されます。このようなヒープでは、最大値はルートに格納され、最小値はルートの子の1つに格納されます。


  1. ペアリングヒープのバリエーション

    ペアリングヒープは、空のヒープ、またはルート要素とペアリングツリーの空のリストを含むペアリングツリーのいずれかです。 ヒープ順序プロパティでは、ノードの親がノード自体より大きくないことが必要です。 次の説明では、キーの減少操作をサポートしない純粋関数型ヒープについて検討します。 タイプPairingTree[Element]=Heap(element:Element、subheaps:List [PairingTree [Element]]) タイプPairingHeap[Element]=Empty | PairingTree [Element] ペアリングヒープには、最小ペアリ

  2. ペアリングヒープ

    ペアリングヒープは、実装が比較的簡単で、実用的な償却パフォーマンスが優れているヒープデータ構造の一種として定義されています。 ペアリングヒープは、ヒープ順に並べられたマルチウェイツリー構造であり、簡略化されたフィボナッチヒープとして表すことができます。 これらは、プリムのMSTアルゴリズムなどのアルゴリズムを実装するための「堅牢な選択」と見なされ、次の操作をサポートします(最小ヒープを想定)- find-min −この関数は、ヒープの最上位要素を返す役割を果たします。 溶ける -この関数は、2つのルート要素を比較する役割を果たします。結果のルートが小さいほど、大きい要素とそのサブツ