c++语言使用迭代法实现二叉树后序遍历

 时间:2024-10-12 23:38:06

1、定义二叉树结构

c++语言使用迭代法实现二叉树后序遍历

2、定义堆栈结构,用于保存迭代法遍历过程中访问节点。

c++语言使用迭代法实现二叉树后序遍历

3、后序遍历时,我们最开始遍历的节点为左子树节点,其次右子树节点,最后根节点。所以,定义堆栈后我们将左子树推送到堆栈。

c++语言使用迭代法实现二叉树后序遍历

4、循环处理,当前堆栈不为空时,访问堆栈顶点元素。按照后序遍历流程,如果其右子树未被访问,则应先访问右子树。为了标识右子树是否已被访问,我们定义一个变量保存上次已访问节点。这样当节点没有右子树或右子树已被访问,则访问当前节点并出栈。

c++语言使用迭代法实现二叉树后序遍历

5、如果节点的右子树未被访问,则按第3步中的情况将右子树中的左子树节点推送入栈。

c++语言使用迭代法实现二叉树后序遍历

6、后序遍历与中序遍历类似,主要区别就是保存上次访问节点,用于判断是否访问当前节点右子树。完整实现如下

c++语言使用迭代法实现二叉树后序遍历
  • Zabbix Agent安装方法
  • js如何让文字倾斜显示
  • vue前后端分离项目前端怎么发布
  • 抛光砖和抛釉砖的区别
  • python中如何对list中的数据进行遍历
  • 热门搜索
    感恩妈妈手抄报内容 关于科技的手抄报内容 反对邪教的手抄报 走进西部手抄报 关于鸟的手抄报 手抄报图案小装饰 重阳节手抄报简单 庆祝国庆手抄报 创建平安校园手抄报 传统美德手抄报