不用栈实现二叉树非递归中序遍历
来源:互联网 发布:淘宝手机详情页图 750 编辑:程序博客网 时间:2024/05/18 14:15
偶尔看到这样一个问题:
有个二叉树,每个节点除了左右指针外,还有一个指向父节点的指针。
要求不用递归,中序遍历这棵树。另要求空间复杂度是O(1).
空间复杂度为O(1),摆明就是不让用堆栈模拟递归,所以想了想思路,也请教过好几个朋友,大家都基本想法都差不多,由于有指向父节点的指针,必定可以回溯,从而可以不需要堆栈来做记录.
但是实现起来,却发现很多细节需要完善,比如遍历的终止条件,现在我是用预先遍历到最后一个右子树,用这个指针作为终止条件.
昨天大体实现了一下.
贴出来,期待达人改进.
关于普通的中序非递归写法,可以参考这里:
http://blog.csdn.net/fuzhufang/archive/2009/03/08/3969375.aspx
- 不用栈实现二叉树非递归中序遍历
- 不用栈实现二叉树非递归中序遍历
- 不用栈实现二叉树非递归中序遍历源代码说明
- 不用栈,来实现二叉树的非递归中序遍历
- 非递归,不用栈实现二叉树中序遍历
- 二叉树中序遍历(递归、栈实现非递归、不用栈实现非递归)
- Morris Traversal: 非递归不用栈实现对树的中序遍历
- 二叉树前后中序遍历的非递归实现
- 二叉树的非递归实现中序遍历
- 二叉树非递归前、中、后序遍历实现
- 二叉树 前序遍历的非递归实现 中序遍历的非递归实现 后序遍历的非递归实现 创建二叉树
- 【二叉树遍历】中序------非递归
- 非递归中序遍历二叉树
- 中序遍历二叉树 [非递归]
- 非递归中序遍历二叉树
- 非递归中序遍历二叉树
- 栈实现二叉树非递归先序遍历
- 不用栈辅助的二叉树非递归后序遍历算法
- SQLSERVER附加错误代码823的处理
- Android ADB usb
- 一个根据数据库中数据,并且页面中用户的勾选所达到的效果
- 另外一个ASP.NET 实现邮件发送和接受的功能(Sockets)
- 关于打印(自己总结一下)
- 不用栈实现二叉树非递归中序遍历
- 今天开始学习EJB,做个记号。
- 结婚的那天晚上,不看你会后悔的!~!~12月3日 14:48
- 关于QUARTZ JOB遇到的问题
- Siebel 异常:Windows.Word.APP required version 9.0.0.0, no version found
- 关于C++类库KYLib: 扩展平衡二叉树类(AVL extended tree)
- extjs 学习笔记
- 存储过程例子
- 桌面显示按钮