c++语言使用迭代法实现二叉树后序遍历
1、定义二叉树结构
2、定义堆栈结构,用于保存迭代法遍历过程中访问节点。
3、后序遍历时,我们最开始遍历的节点为左子树节点,其次右子树节点,最后根节点。所以,定义堆栈后我们将左子树推送到堆栈。
4、循环处理,当前堆栈不为空时,访问堆栈顶点元素。按照后序遍历流程,如果其右子树未被访问,则应先访问右子树。为了标识右子树是否已被访问,我们定义一个变量保存上次已访问节点。这样当节点没有右子树或右子树已被访问,则访问当前节点并出栈。
5、如果节点的右子树未被访问,则按第3步中的情况将右子树中的左子树节点推送入栈。
6、后序遍历与中序遍历类似,主要区别就是保存上次访问节点,用于判断是否访问当前节点右子树。完整实现如下
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:79
阅读量:63
阅读量:51
阅读量:52
阅读量:75