我想实现一个递归的splay树,自下而上。我递归到我需要展开的节点,并找到该节点的父节点和祖父节点。然后,我可以根据情况做出曲折或曲折的曲折。问题是在完成之后,我将返回已经展开一次的节点返回到先前的递归调用。先前的递归调用被引用到该节点的父节点,该节点现在是该节点的子节点。随着我上升,我该如何递增节点?递归Splay树
Q
递归Splay树
3
A
回答
1
如果我正确记得,当你递归到目标节点时,你建立一个左右树。当你找到目标时,你使用目标的(原始)孩子构建最终的左右树,将所得树附加为目标的新孩子,并以尾递归方式返回结果(即,所有无需进一步修改即可备份堆栈)。
0
当树完全“非平衡”并且非常大(例如100000 int键)时,递归算法可能会抛出stackoverflow异常。最好在每个节点中使用父指针来获取父或父级父级。这是做到这一点的一种方式。为我工作得很好。
上运行的效果显着位置splay tree runtime profiling
相关问题
- 1. 我可以使用递归算法来实现Splay树吗?
- 2. 测试Splay树
- 3. Splay树插入
- 4. C++实现Splay树
- 5. Splay树可视化
- 6. 递归从树
- 7. F#:递归树
- 8. 树+递归
- 9. 树叉()递归
- 10. 显示Splay树的方法
- 11. Splay树搜索实现
- 12. 解决递归的递归树方法
- 13. 打印树递归
- 14. 递归树建设
- 15. 树中的递归
- 16. 递归树映射
- 17. 递归树搜索
- 18. 随机树(递归)
- 19. 打印递归树
- 20. 递归 - 二叉树
- 21. PHP类树递归
- 22. React JS递归树
- 23. Python Turtle递归树
- 24. 递归树生成
- 25. 树遍历递归
- 26. 递归排序树
- 27. 递归二叉树
- 28. AVL树非递归
- 29. 递归算法树
- 30. 递归创建树
是什么递归伸展树和正常之间的区别? – Svante 2010-03-03 20:29:25
递归意味着节点从下向上递归展开。正常的意味着从顶部向上播放节点 – Andrew 2010-03-03 22:10:03