我想實現一個遞歸的splay樹,自下而上。我遞歸到我需要展開的節點,並找到該節點的父節點和祖父節點。然後,我可以根據情況做出曲折或曲折的曲折。問題是在完成之後,我將返回已經展開一次的節點返回到先前的遞歸調用。先前的遞歸調用被引用到該節點的父節點,該節點現在是該節點的子節點。隨着我上升,我該如何遞增節點?遞歸Splay樹
Q
遞歸Splay樹
3
A
回答
1
如果我正確記得,當你遞歸到目標節點時,你建立一個左右樹。當你找到目標時,你使用目標的(原始)孩子構建最終的左右樹,將所得樹附加爲目標的新孩子,並以尾遞歸方式返回結果(即,所有無需進一步修改即可備份堆棧)。
0
當樹完全「非平衡」並且非常大(例如100000 int鍵)時,遞歸算法可能會拋出stackoverflow異常。最好在每個節點中使用父指針來獲取父或父級父級。這是做到這一點的一種方式。爲我工作得很好。
上運行的效果顯着位置splay tree runtime profiling
相關問題
- 1. Splay樹插入
- 2. C++實現Splay樹
- 3. 樹叉()遞歸
- 4. 遞歸從樹
- 5. 樹+遞歸
- 6. F#:遞歸樹
- 7. 打印遞歸樹
- 8. 遞歸排序樹
- 9. 遞歸樹建設
- 10. 樹中的遞歸
- 11. 遞歸樹生成
- 12. 遞歸創建樹
- 13. 樹遍歷遞歸
- 14. React JS遞歸樹
- 15. 遞歸樹映射
- 16. 遞歸算法樹
- 17. 遞歸樹搜索
- 18. PHP類樹遞歸
- 19. 我應該使用splay樹嗎?
- 20. Splay樹:最壞情況序列
- 21. Splay樹插入實現中的問題
- 22. jQuery中的遞歸樹
- 23. 樹:根到葉和(遞歸)
- 24. Javascript遞歸樹大廈
- 25. 遞歸遍歷二叉樹
- 26. 在樹中遞歸搜索
- 27. B樹遞歸搜索C++
- 28. 遞歸二叉樹函數
- 29. 樹遍歷遞歸計算
- 30. 遞歸迭代(在Python樹)
是什麼遞歸伸展樹和正常之間的區別? – Svante 2010-03-03 20:29:25
遞歸意味着節點從下向上遞歸展開。正常的意味着從頂部向上播放節點 – Andrew 2010-03-03 22:10:03