前序遍历-》首先访问根结点,

然后遍历左子树,

最后遍历右子树。

在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

中序遍历-》首先遍历左子树,

然后访问根结点,

最后遍历右子树。

在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。

后序遍历-》首先遍历左子树,

然后遍历右子树,

最后访问根结点。

在遍历左、右子树时,仍然先遍历左子树,再遍历右子树,最后访问根结点。

记忆麻烦,直接记:前就是首先,中就是中间,后就是最后,前序遍历就是首先根结点,中序遍历就是中间再访问根结点,后序遍历就是最后访问根结点!

1. 已知前序、中序遍历,求后序遍历

前序遍历:  DBAECHMZ

中序遍历:ABCEDMHZ

先根据前序遍历得到根结点为D。根据中序遍历就可以知道ABCE为左子树,MHZ为右子树。

再根据前序遍历,D之后就是BAEC为左子树,所以B是离根节点最近的一个左子树的根结点,B为ADCE左子树的根结点,

再根据前序遍历,D之后的HMZ为右子树,      所以H是离根结点最近的一个右子树的根结点,H为HMZ右子树的根结点,

所以:                        D

B   H

接下来截断为:

前序:BAEC

中序:ABCE

再根据前序遍历,左子树根结点为B,根据中序遍历就可以知道A为左子树,CE为右子树

再根据前序遍历,B之后就是A为左子树,没啥好分析了

再根据前序遍历,B之后就是EC为右子树,所以E是离根结点最近的一个右子树的根结点,E为EC右子树的根结点

所以:                    B

A  E

同理,再分析右子树,最后可得二叉树的结构为:   D

B   H

∧     ∧

A   E  M  Z

C

搞定! 一般先用前序遍历跟后序遍历分析出哪个是根结点,用中序遍历分析出左右子树!愉快的一晚!

数据结构之前序遍历,中序遍历,后序遍历相关推荐

  1. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)

    zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件:       ⑴有且仅有一个结点没有前驱 ...

  2. 数据结构笔记 —— 二叉树(前序、中序、后序遍历和查找)

    本篇博客是根据b站尚硅谷的数据结构教程,学习后写的学习笔记,本篇博客的重点在自己编写的代码注释和过程分析上 https://www.bilibili.com/video/BV1E4411H73v?p= ...

  3. C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历)

    C语言数据结构之二叉树的层次建树及遍历方法(前序,中序,后序,层次遍历) tips:前些天学习了C语言数据结构链表,栈,队列.今天来学习一下C语言数据结构之二叉树的各种操作. 注意:二叉树的层次建树是 ...

  4. C/C++编程笔记:数据结构二叉树的查找(前序、中序、后序、层序遍历)

    建立一棵含有n个结点的二叉树,采用二叉链表存储: 输出前序.中序.后序..层序遍历该二叉树的遍历结果. 定义二叉树的数据类型--二叉树结点结构体BiNode.建立二叉链表可以采用扩展二叉树的一个遍历序 ...

  5. 【数据结构】理解二叉树的三种遍历--前序、中序、后序 +层序(简明易懂)

    一.易懂的形象理解 其实从名字就可以很好的理解这三种遍历,我在第二点时候说,但是估计能翻到我的文的同学们之前肯定看过好多类似的了,那咱们换个思路~ 先用我想的一种简单易懂的形象思维理解一下前序.中序. ...

  6. 二叉树深度优先 java_二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历) java实现...

    二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的.对于二叉树,有深度遍历和广度遍历,深度遍历有前序.中序以及后序三种遍历方法,广度遍历即我们寻常所说的层次遍历.由于树的 ...

  7. 二十五、二叉树的前序、中序、后序遍历

    一.为何使用树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快.对于有序数组,还可使用二分查找提高检索速度. 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较 ...

  8. 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)

    引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...

  9. PHP实现二叉树的深度优先遍历(前序、中序、后序)和广度优先遍历(层次) 转载陈小龙哈2017...

    http://blog.csdn.net/baidu_30000217/article/details/52953127 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点 ...

  10. 二叉树的前序、中序、后序遍历与创建

    #include <iostream> #include <string> #include <stack> using namespace std; struct ...

最新文章

  1. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总
  2. java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...
  3. JVM中的Stack和Heap1
  4. oracle 测试数据类型,oracle修改表字段的数据类型测试
  5. docker入门之容器网络
  6. robomaster裁判系统服务器,2018裁判系统调试组网完全攻略
  7. 从jHiccup开始
  8. Oracle插入时间
  9. pytorch学习笔记(二十九):简洁实现循环神经网络
  10. 剑指Offer之和为S的连续正数序列
  11. 教你利用 Python 计算同比、环比、定基比
  12. miui12系统小米系统安卓系统里面存储空间占用太多如何清理
  13. 前端学习个人心得,总结(个人向)
  14. 行业寒冬下,简历发了几千次已读不回,功能测试的出路在哪里?
  15. mysql:mysql数据库下载及安装(详细)
  16. 爱上收纳的花艺师:热爱生活,就能被生活治愈
  17. ios运行html时黑屏,iOS-启动图黑屏解决方法
  18. HACK彩虹易支付超完整源码+内附11个模板
  19. This connection has been closed,应用连接数据库后1-3小时,即自动断开连接
  20. QT全平台支持——开始学习

热门文章

  1. 评测5款国内外免费远控,谁是最好用第一名?
  2. 删除数据后如何及时释放存储空间
  3. ‘v-model’ directives require no argument
  4. 卓有成效的管理者—第八章 结论:管理者必须卓有成效
  5. 上班路上摔了一跤算工伤吗?
  6. sklearn聚类算法实现
  7. js中字符串截取函数及其方法
  8. 查看PFX证书的信息
  9. google不能用解决方法
  10. SHELLEXECUTEINFO控制外部进程