我正在學習考試,目前我在堆。我已經理解如何從一個堆中刪除一個節點,但是我可以找到一個我不能使用該算法刪除的情況。如何刪除(min-)堆中的最後一個節點?
問題是我想刪除15
這是一個葉子和最小堆的最後一個節點。當您刪除堆中的節點時,您正在查找堆的最後一個節點,將其替換爲刪除節點,並檢查此節點的子節點是否大於此節點..然後以遞歸方式繼續此操作。
因此(15
是最後一個元素,沒有孩子),我不知道如何刪除它。
1
/ \
9 6
/\ /
17 11 8
/
15
我認爲你可以刪除它,而無需執行其他任何操作。由於刪除節點=最後一個節點,所以基本上可以自行替換它。因此,它看起來像這樣:
1
/ \
9 6
/\ /
17 11 8
我希望你能幫助我,我真的需要知道我的考試,我找不到任何有關在互聯網上這種情況下,任何東西。
顯示您的代碼。 – stark