二叉树遍历基础概念分析:

  1. 遍历:编写程序时,读取二叉树中内容的顺序(本人理解为此)。
  2. 先序/中序/后序:二叉树的先序,中序,后序中的“先中后”是相对于“根”而言的,意思是在什么时候遍历根节点。
  3. 遍历规律:中序遍历来确定一个元素的左边有哪些元素、右边有哪些元素(确定大体的位置);后序/先序遍历来确定哪个元素在左,哪个元素在右(确定最终的位置)。

下面以自己画的一个二叉树为例,来说明一下各种遍历方法。

先序遍历

访问根节点;先序遍历左子树;先序遍历右子树(ABDGHECFI)

中序遍历

中序遍历左子树;访问根节点;中序遍历右子树(GDHBEACIF)

后序遍历

后序遍历左子树;后序遍历右子树;访问根节点(GHDEBIFCA)

(本来想着给大家再写一下这些遍历的代码实现。最近一直没有在学习,所以给大家推荐一篇大神的文章,里面递归实现和堆栈实现都有些,写的也挺详细的。大家自行参考哦!二叉树遍历方式代码实现)


如何通过两个遍历方式来计算第三个遍历方式?

首先必须要知道中序遍历,这样才能通过先序或者后序遍历来判断根的左右子树,从而逐个的判断出每个数所在的位置。
**举个栗子(搞错了,For example):**已知一个二叉树的先序遍历序列(ABDGHECFI)和中序遍历序列(GDHBEACIF),求该二叉树的后序遍历?
解答:

 - 首先通过先序遍历序列确定序列(GDHBEACIF)根节点为A;其次通过中序遍历序列得出A节点左边(左子树以及其下的子树)为GDHBE,右边为CIF。- 再首先通过先序遍历序列确定序列(GDHBE)根节点为B,确定序列(CIF)根节点为C;再其次通过中序遍历序列得出B节点左边为GDH,右边为E(即为B的右子树)、得出C节点左边为没有,右边为E(即为B的右子树)。- 再再首先通过先序遍历序列确定 序列(GDH)根节点为D;再再其次通过中序遍历序列得出D节点的左边为G(即为左子树),右边为H(即为右子树)。

最后就得出了这个二叉树的真实排布方式,从而可以简单的写出它的后续遍历序列。是不是被我的文字所折服——“首先~ 其次~ 。 再首先~ 再其次~ ”。其实后面的“再首先~ 再其次~”都和前面的“首先 其次”中讲的方法都是一样的。便于大家观察理解,我画一个草图吧。最终可以轻松计算其后续遍历序列为:GHDEBIFCA

(条件有限,大家就这样看吧,应该能看清楚。摸摸哒)


("自己做的每一次决定,都请你不要后悔。生活本就是未知的,为何不放手一搏呢? FIGHTING…")

二叉树的三种遍历方式:先序,中序,后序相关推荐

  1. 二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历

    二叉树的三种遍历方式:前序遍历.中序遍历和后序遍历 参考资料: 二叉树.前序遍历.中序遍历.后序遍历 - 蓝海人 - 博客园 (cnblogs.com) 二叉树 - LeetBook - 力扣(Lee ...

  2. c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...

  3. 二叉树的三种遍历方式(递归、非递归和Morris遍历)

    二叉树的三种遍历方式(递归.非递归和Morris遍历) 原文:http://www.linuxidc.com/Linux/2015-08/122480.htm 二叉树遍历是二叉树的最基本的操作,其实现 ...

  4. 详解二叉树的三种遍历方式(递归、迭代、Morris算法)

    详解二叉树的三种遍历方式(递归.迭代.Morris算法) 最重要的事情写在前面:遍历顺序不一定就是操作顺序!!! 递归解法 首先,一颗二叉树它的递归序列是一定的,导致其前中后序不同的原因只不过是访问节 ...

  5. c语言二叉树的遍历菜单系统,C语言二叉树的三种遍历方式的实现及原理

    C语言二叉树的三种遍历方式的实现及原理 发布时间:2020-10-03 19:43:57 来源:脚本之家 阅读:63 作者:看雪. 二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个 ...

  6. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

  7. 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)

    如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...

  8. 二叉树的三种遍历方式

     目录 1.二叉树的结构: 2.二叉树的前序遍历: 3.二叉树的中序遍历: 4.二叉树的后序遍历: 5.二叉树前.中.后序的代码实现: 前序遍历函数: 中序遍历函数: 后序遍历: 完整代码: 代码运行 ...

  9. 二叉树的三种遍历方式-前序遍历,中序遍历,后序遍历

    二叉树的遍历 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问.访问结点所做的操作依赖于具体的应用问题(比如:打印节点内容.节点内容加1). 遍历是二叉树上 ...

最新文章

  1. Pandas 基础 (5) —— 处理缺失数据及层次化索引
  2. TTCN手动测试总结
  3. 个人品牌的思考--《赢在中国》(2008-04-01)
  4. Web Socket 性能对比——Spring Boot vs Tomcat vs Netty
  5. 3PAR推InServ-T级存储 EMC们紧张了?
  6. Quartz Scheduler插件–隐藏的宝藏
  7. 苹果mac最好用的SVN客户端:Cornerstone 4 (SVN管理工具)
  8. 使用GDB调试Android NDK native(C/C++)程序-转
  9. 深入浅出python 1
  10. 老赵谈IL(2):CLR内部有太多太多IL看不到的东西,包括您平时必须了解的那些...
  11. Markdown入门教程-不古出品
  12. 用html设计logo,终于知道网页logo设计要点
  13. http://coffeejp.com/bbs/forum.php?mod=viewthread,问题列表_华泰证券网络路演_新浪网
  14. 常用颜色表以及中国传统颜色名录(附宏定义)
  15. 异常处理(二)---------Field * in * required a bean of type '*' that could not be found.
  16. java excel转pdf
  17. Android Studio中的typo波浪线提示
  18. Linkflow CDP亮相GDMS全球数字营销峰会
  19. 社保,你不能做的N件事
  20. 计算机专业本科考教资可以考哪些,高中教师资格证计算机专业考什么内容

热门文章

  1. Python学习13-15.1-15.12 保持时间、计划任务和启动程序
  2. ASEMI肖特基二极管MBR20200FCT特征,MBR20200FCT应用
  3. IT软件开发常用英语词汇
  4. Third party CSS is not saf
  5. 翔仪 垂直起降固定翼 操作流程
  6. 如何在github删除项目
  7. 高考英语作文计算机、,高考英语作文题目和范文-20210624005302.docx-原创力文档
  8. HTTP协议header中Content-Disposition中文文件名乱码
  9. 简单递归题,核反应堆中有α和β两种粒子...
  10. prometheus监控mysql主从