[英]dequeuemin in Fibonacci heaps
我想問一下斐波那契堆。 如果我有這種情況:
A
|
B
然后,我們再添加兩個節點C和D:
A
|\
B C
|
D
現在我們刪除B:
A
|
C
|
D
現在我們添加E和F。
我看到它創建了這樣的樹:
E
|\
F A
|
C
|
D
但是我不明白為什么E和F與樹連接 。 從我的閱讀中,我們將具有相同等級的樹連接起來(例如,一個節點的樹與另一個節點的樹),這是對的嗎?
非常感謝你。
如果將節點C和D添加到第一個Fibonacci堆中,則最終不會得到繪制的樹。 相反,您將擁有此堆:
A C D
|
B
請記住,斐波那契堆將每個新添加的值延遲添加到樹的頂級列表中,並且僅合並刪除項。 如果要刪除B,則應將其提升到最高級別,如下所示:
A B C D
然后,您將刪除B:
A C D
現在,您將掃描根列表並將相同順序的樹合並在一起。 假設您以A,C,D的順序掃描節點。首先,將A和C合並在一起,如下所示:
A D
|
C
在這一點上,將不會發生進一步的合並,因為每個順序中只有一棵樹。
如果再添加E和F,則將它們放在頂層,如下所示:
A D E F
|
C
所以是的,您是對的,不應將這些節點添加到樹中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.