[理工] [資結] Min Max heap

看板Grad-ProbAsk作者 (胖胖)時間14年前 (2012/01/10 23:32), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
想請問刪除最小值的作法 當刪除最小值時 , root刪除 , 最後一個節點令為x重新插入到樹根為空的min max heap 當最小值是孫子時令為k , 若k < x 則將k置於root中 , 此時檢查 x是否大於k的父親 若大於的話則將x與k的父親交換值(變數名稱不變) 再將x重新插入到樹根為空的min max heap 這邊想請問紅色字的部份 : 是指原本以k為樹根的min max heap嗎?? 是不是因為若k < x 則將k置於root中 -> 把k刪掉從原本位置刪除而放到root 因此以k為樹根的min max heap就變成樹根為空?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.0.42.10

01/11 00:10, , 1F
yes 總之就是從被刪掉的點繼續作min max heap
01/11 00:10, 1F

01/11 00:18, , 2F
所以這裡k點就是被刪除的點然後放在root的位置
01/11 00:18, 2F

01/11 00:19, , 3F
然後再將x插入到原本以k點為樹根的子樹(現在k點為空)
01/11 00:19, 3F

01/11 00:20, , 4F
應該是這樣沒錯吧@@ 抱歉想確認清楚點
01/11 00:20, 4F

01/11 00:26, , 5F
這....不是你上面原文的意思嗎?? XD
01/11 00:26, 5F

01/11 00:27, , 6F
好像是耶XD 謝謝你
01/11 00:27, 6F
文章代碼(AID): #1F35eEib (Grad-ProbAsk)