教育改变生活

标题: 【数据结构】二叉树中序遍历的非递归实现 [打印本页]

作者: wander    时间: 2023-9-18 21:28
标题: 【数据结构】二叉树中序遍历的非递归实现
二叉树中序遍历的非递归方式实现思想是:从根结点开始,遍历左孩子同时压栈,当遍历结束,说明当前遍历的结点没有左孩子,从栈中取出来调用操作函数,然后访问该结点的右孩子,继续以上重复性的操作。

除此之外,还有另一种实现思想:中序遍历过程中,只需将每个结点的左子树压栈即可,右子树不需要压栈。当结点的左子树遍历完成后,只需要以栈顶结点的右孩子为根结点,继续循环遍历即可。
以下图所示二叉树为例,其 C 语言实现代码为:


两种非递归方法实现二叉树中序遍历的代码实现为:


运行结果中序遍历算法1:
4 2 5 1 6 3 7
中序遍历算法2:
4 2 5 1 6 3 7







欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2