主要操作
不失一般性,只討論根結點為最小層的情況 。
插入
只需要將節點插在二叉樹的最後一個葉子結點位置,然後比較它對它父親節點的大小,如果大則停止;如果小則交換位置,然後對父親節點遞歸該過程直至根節點。複雜度為。
一般來說,插入的位置可以不是最後一個葉子節點,可以作為任意中間節點的孩子節點插入,將這個葉子節點變為中間節點後,按上文所說的方法調整節點順序以保證維持堆特性不變。
刪除
要從堆中刪除一個節點,用最後一個節點替換掉要刪除的節點,然後調整節點順序以維持堆特性。
套用
雙端優先佇列。