Data-structures-algorithms-heap-data-structure
提供:Dev Guides
ヒープデータ構造
ヒープは、バランスの取れたバイナリツリーデータ構造の特殊なケースで、ルートノードキーがその子と比較され、それに応じて配置されます。 *α*に子ノード*β*がある場合-
key(α)≥key(β)
親の値が子の値より大きいため、このプロパティは Max Heap を生成します。 この基準に基づいて、ヒープは2つのタイプになります-
両方のツリーは、同じ入力と到着順序を使用して構築されます。
最大ヒープ構築アルゴリズム
同じ例を使用して、最大ヒープがどのように作成されるかを示します。 最小ヒープを作成する手順は似ていますが、最大値ではなく最小値を使用します。
一度に1つの要素を挿入することにより、最大ヒープのアルゴリズムを導き出します。 ヒープは常にそのプロパティを維持する必要があります。 挿入中に、すでにヒープ化されたツリーにノードを挿入していることも想定しています。
注-最小ヒープ構築アルゴリズムでは、親ノードの値が子ノードの値よりも小さくなると予想されます。
アニメーションの図でMax Heapの構造を理解しましょう。 前に使用したのと同じ入力サンプルを検討します。
最大ヒープ削除アルゴリズム
最大ヒープから削除するアルゴリズムを導き出しましょう。 最大(または最小)ヒープの削除は、常にルートで行われ、最大(または最小)値が削除されます。