树的遍历操作详解-附代码

5 篇文章 0 订阅

前言:

树的遍历的几种形式:
  1. 前序遍历
  2. 中序遍历
  3. 后序遍历
  4. 广度优先遍历(BFS,层次遍历)
  5. 深度优先遍历(DFS)
我们以下面的这个二叉树结构为例,分别描述一下这几种遍历的方式有什么不同

树的遍历
对于一棵二叉树,我们知道它会有左节点,右节点和根节点。无论我们使用哪种遍历,左节点一定会比右节点先访问,而区别前序,后序和中序的方法就是看何时遍历根节点,也就是根节点,左节点,右节点的顺序。

  1. 前序遍历:如果根节点在左节点前面遍历,也就是说遍历顺序为:根节点->左节点->右节点。对于上面那棵树,前序遍历结果为:ABDHIECFJG
  2. 中序遍历:如果根节点在左节点之后,右节点之前遍历,也就是遍历顺序为:左节点->根节点->右节点。对于上面那棵树,中序遍历得到的结果为:HDIBEAFJCG
  3. 后序遍历:如果根节点在右节点之后遍历,也就是遍历顺序为左节点->右节点->根节点。对于上面那棵树,后序遍历的结果为:HIDEBJFGCA
  4. 广度优先遍历(BFS):对于广度优先遍历,我们把树分层,根节点为第一层,根节点的子节点为第二层,第二层的子节点为第三层,依次递推。例如上面的树,第一层为A,第二层为BC,第三层为DEFG,第四层为HIJ。遍历的时候就对每一层从左到右进行依次访问。例如上面那棵树广度优先遍历得到的结果为:ABCDEFGHIJ
  5. 深度优先遍历(DFS):深度优先遍历就是从一棵树的根节点开始,一直访问左子节点,一直到为空,然后再向上依次返回访问右子节点(如果右节点不为空,我们就继续对右节点进行深度优先遍历)。例如上面那棵树深度优先遍历得到的结果就是:ABDHIECFJG

详细算法思路以及源代码见另一篇博客:树的遍历详细算法–C++

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值