中序遍历非递归算法
发布时间: 2024-11-24 03:41:52
Ⅰ 数据结构的中序遍历二叉树的结点的非递归算法
如图
Ⅱ 计算机中中序遍历不懂,求解
可以看一下下面的解释:
按照二叉树中序遍历的定义,无论是访问整棵树还是其子树,均应该遵循先访问根结点的左子树,然后访问根结点,最后访问根结点的右子树的规律。因此对于一棵
树t,如果t非空,首先应该进入t的左子树访问,此时由于t的根结点及右子树尚未访问,因此必须将t保存起来,放入栈中,以便访问完其左子树后从栈中取出
t,进行其根结点及右子树的访问,在整个二叉树中序遍历的过程中,程序要做的工作始终分为两个部分:当前正在处理的树(子树)和保存在栈中待处理的部分
(注:当栈中元素位于栈顶即将出栈时,意味着其左子树已访问完,出栈后应该立即访问其根结点,再进入其右子树的访问),只有这两部分的工作均完成后,程序
方能结束。根据以上分析,得到二叉树中序遍历的非递归算法,在算法实现时,用了链式存储结构。
热点内容