最小-最大ヒープ
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つに格納されます。
-
ペアリングヒープのバリエーション
ペアリングヒープは、空のヒープ、またはルート要素とペアリングツリーの空のリストを含むペアリングツリーのいずれかです。 ヒープ順序プロパティでは、ノードの親がノード自体より大きくないことが必要です。 次の説明では、キーの減少操作をサポートしない純粋関数型ヒープについて検討します。 タイプPairingTree[Element]=Heap(element:Element、subheaps:List [PairingTree [Element]]) タイプPairingHeap[Element]=Empty | PairingTree [Element] ペアリングヒープには、最小ペアリ
-
ペアリングヒープ
ペアリングヒープは、実装が比較的簡単で、実用的な償却パフォーマンスが優れているヒープデータ構造の一種として定義されています。 ペアリングヒープは、ヒープ順に並べられたマルチウェイツリー構造であり、簡略化されたフィボナッチヒープとして表すことができます。 これらは、プリムのMSTアルゴリズムなどのアルゴリズムを実装するための「堅牢な選択」と見なされ、次の操作をサポートします(最小ヒープを想定)- find-min −この関数は、ヒープの最上位要素を返す役割を果たします。 溶ける -この関数は、2つのルート要素を比較する役割を果たします。結果のルートが小さいほど、大きい要素とそのサブツ