(透徹理解)最精銳代碼::堆的三種基本操作新建-插入-刪除


 

1.刪除頂的最大元素 (以某個元素為根結點向下調整為堆)

比如:刪除這個堆的20

第一步:是20 和 3 交換

第二步:以3為根節點開始調整為堆(3和17交換)

再以3為根節點調整為堆(16和3交換)這樣又形成了一個堆

 

2.往一個完整的堆中插入元素(唯一一個自底向上調整的例子)

目標:往堆的尾部插入元素21,這樣就破壞了堆,然后要調整為堆

算法1:21和8調整   這樣20的左右是一個堆了

算法2:將21和20進行調整,這樣堆就形成了

3.新建一個堆(以某個元素為根結點向下調整為堆

算法1:以3為根結點開始調整為堆,8和3交換 ,這樣這個小堆就建立好了

算法2:以7為根結點向下調整為堆

算法3:然后以16為根結點向下調整為堆

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM