簡體   English   中英

斐波那契堆中的出que糖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM