1
A
回答
-1
其實,這是最好的情況下(因爲你可以看到,提取敏總是容易的,因爲我們已經下令元素)。應該通過這種方式將反向排序元素序列(即,最小的元素將放在最後)得到它:
- 插入兩個元素
- 提取分鐘
- 重複
+0
我認爲這會產生一棵樹,但它不是按照要求(每個節點應該只有一個孩子)。看看這裏: http://www.cse.yorku.ca/~aaw/Jason/FibonacciHeapAnimation.html –
2
我想jpalecek的答案不會產生請求的樹。這裏試試:
http://www.cse.yorku.ca/~aaw/Jason/FibonacciHeapAnimation.html
此外,您可以只用插接件的任何數字達到同樣的結果,然後提取分鐘一次。無論如何,這不是要求。
達到你想要做到這一點的形式:
- 插入的任何元素的數量 - 比如說1到10
- 提取分鐘(現在你有一棵樹)
- 減少所有兒童
-inf
除最左邊以外,從最深處開始,從左到右(請參見下面的演示)。 - 每次減小後,刪除
- 重複步驟3
例如最小:
- 刀片1至10:
- 提取分鐘:
- 降低
7
到0
:
- 提取分鐘:
- 降低
5
到0
,提取分鐘,減少4
到0
,提取分鐘,減少3
到0
,提取分鐘,減少10
到0
,提取分鐘:
編輯:
我忘了有一個delete
操作,使decrease
然後extract min
,所以你可以用它代替了下降然後提取分鐘我在上面做什麼。
,注意此時,當你有一個「單一路徑」樹,你可以輕鬆地被O的這個序列擴大它(1)操作:
- 將除最小較小的3個元素
- 提取分鐘
- 刪除新的右子
示範(繼續上次從例如步驟):
- 插入
1
,0
,-1
:
- 提取分鐘:
- 刪除新的右子(
1
):
所有圖像由this website
相關問題
- 1. 斐波那契堆問題
- 2. 爲什麼斐波納契堆稱爲斐波那契堆?
- 3. 佩爾堆,就像斐波那契堆
- 4. 斐波那契堆中的dequeuemin
- 5. Smalltalk斐波那契
- 6. 斐波那契haskell
- 7. 實現鞏固在斐波那契堆
- 8. 互惠斐波那契恆
- 9. 斐波那契功能
- 10. C++斐波那契錯誤
- 11. 斐波那契遞歸ex
- 12. 斐波那契數列
- 13. 斐波那契計算
- 14. 斐波那契Sum in(Java)
- 15. Java斐波那契數列
- 16. Javascript斐波那契方法
- 17. 斐波那契數列
- 18. 使斐波那契組成
- 19. 斐波那契序列python
- 20. 提取民的最大時間 - 斐波那契堆
- 21. 斐波那契和非斐波納契編碼
- 22. [Java]斐波那契數列越大,斐波那契數列的輸出越多
- 23. 斐波那契數字從0到n
- 24. 如何在不使用列表的情況下生成斐波那契數列?
- 25. 如何獲得斐波那契遞歸的時間
- 26. 斐波那契在python中 - 可以解釋範圍之間的斐波那契數是如何工作的嗎?
- 27. 斐波那契數列中的錯誤
- 28. 使用matlab的斐波那契數字
- 29. 獲取斐波那契數的索引
- 30. java中的斐波那契程序
這實際上是一個堆* *最好的情況下創建的。 – jpalecek