二叉树前,中序推后续_中,后续推前序

文章目录

介绍

二叉树是由根、左子树、右子树三部分组成。
二叉树的遍历方式又可以分为前序遍历,中序遍历,后序遍历。

前序遍历:根,左子树,右子树
中序遍历:左子树,根,右子树
后序遍历:左子树,右子树,根

比如定义一棵树:
在这里插入图片描述
它的前序遍历结果为:1 2 3 4 5 6
中序遍历结果为:3 2 1 5 4 6
后序遍历结果为:3 2 5 6 4 1
现在如果我们没有二叉树的图,只知道它的两种遍历的结果,如何求第三种遍历的结果呢?问题化简一下,我们只需知道完整的数的样子就能直接写出第三种遍历结果,所以我们需要用两种遍历的结果推出树的样子就好了。(两种遍历中必须包含中序遍历,只有前序遍历和后序遍历不能确定一棵树。)

思路

首先观察三种遍历的特点,主要思路就是找根节点的位置。

例子

比如给出一颗二叉树的中序遍历序列为JGDHKBAELIMCF,后序遍历序列为JGKHDBLMIEFCA。
由后续遍历最后一个是根结点,我们可以找到根是A。
再由中序遍历:根的左边是左子树,右边是右子树。所以A的左子树为JGDHKB,A的右子树为ELIMCF。
比较中序遍历的左右子树确定后序遍历中的左右子树
中:JGDHKB A ELIMCF
后:JGKHDB LMIEFC A
再次根据后续遍历找根,可以看出是B和C
然后在中序遍历的左右子树中再次找出根,左子树,右子树。一直重复直到最后只剩一个结点。下面以左子树为例。
2中:JGDHK B 此时没有右子树
2后:JGKHD B

根为D
3中:JG D HK
3后:JG KH D

根为G
4中:J G
4后:J G
所以可以得到树

在这里插入图片描述
所以它的前序遍历为:ABDGJHKCEILMF
前序+中序推后序与此类似。

相关推荐

  1. 遍历

    2023-12-18 05:58:01       20 阅读
  2. 遍历

    2023-12-18 05:58:01       9 阅读
  3. 王道c语言-、后、层次遍历

    2023-12-18 05:58:01       16 阅读
  4. 便利,遍历,后遍历

    2023-12-18 05:58:01       7 阅读
  5. 的统一迭代法--力扣

    2023-12-18 05:58:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 05:58:01       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 05:58:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 05:58:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 05:58:01       18 阅读

热门阅读

  1. 大数据之旅-问题反思

    2023-12-18 05:58:01       44 阅读
  2. 复杂指针的声明

    2023-12-18 05:58:01       34 阅读
  3. 安装Docker

    2023-12-18 05:58:01       46 阅读
  4. 测试:Selenium相关问题

    2023-12-18 05:58:01       33 阅读
  5. 【深入pytorch】transforms.functional 梯度流动问题

    2023-12-18 05:58:01       43 阅读
  6. CAD VBA 导出cass扩展数据到excel

    2023-12-18 05:58:01       43 阅读
  7. Skywalking告警规则示例

    2023-12-18 05:58:01       35 阅读