二叉树的前中后序你真的懂了吗

首先观察前中后序的排列方式
前中后序列的左右子树的顺序是不会改变的
唯一会改变的就是根节点的位置
ok
回到前中后
前序就是根节点在前面(根左右)
中序就是根节点在中间(左根右)
后序就是根节点在末端(左右根)
例如给一个二叉树
观察这个二叉树
我们使用前序遍历
根据我们刚才的根左右的顺序来解答这个二叉树

从左到右我们分别命上编号
A
BC
DEF

观察第一个根节点
就是我们的首结点
根左右的顺序来看这个二叉树下面的部分我们先不看
只看上面前两层
根据前序根左右我们可以得到ABC
但是我们的B结点在他的子数里面又是一个根节点,所以这个地方我们再把B展开
B根据根结点的排序我们可以得到一个新的就是
根左(根左右BDE)右
即为我们将B替换为BDE
现在我们的前序序列为A*BDE*C
继续展开我们的右边的树
即为C展开为CF根左右没有左结点 使用我们的C变成CF序列
现在我们的所有结点全部排序完毕
我们得到了全部的结点为
ABDECF

他们的遍历代码类似
我们可以简洁的清晰记忆
此处我们用C语言描述一下
稍等补上
用递归遍历
void PreOrder(BiTree T)
{
if(T!=Null)
{
visit(T); //访问根节点,这一行的位置不一样就是对应的遍历 不一样,看下一行PreOrder访问的是lchild也就是说如果我们的左节点不为空的话,会调用自己这个函数来访问左节点,函数的参数就是T ,对应着我们的理解就是把左子点当成根节点。符合了我们的遍历思想。
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}

这个树的中序遍历也就是左根右的顺序
同理我们进行一下遍历
可能会对这个遍历带入一下就得到了
DBE
没错你得到了左子树得全部结点
继续带入(DBE)A(C)发现还少一个结点
我们把C的子树当成一个新的子树
空CF
是不是得到了一个右边得结点
串联起来就是
DBEACF

后序遍历为
左右根
DEBFCA

看一下下一篇关于这三种遍历的拓展到B树,我感觉你应该对遍历会有一个新的认识。看一看吧,,,,,,,,,,,,,那一篇能解决大部分的前中后序遍历。
链接: B树拓展.

二叉树遍历的浅显解释纯干货相关推荐

  1. class转java_[拒绝套路,纯干货]这一百多道 Java 基础问题你掌握了吗?

    码农每日一题长按关注,工作日分享一些技术知识点. [每日一题]Java 基本数据类型基础面试题 [每日一题]Java 包装类型装箱拆箱基础面试题 [每日一题]Java 字符串(Part 1)相关面试题 ...

  2. 前端面试题汇总(JavaScript面试纯干货)

    前端面试题汇总(JavaScript面试纯干货) 1 闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个函数内创建另⼀个函数, ...

  3. c语言怎样统计数组的长度,C语言指针难吗?纸老虎而已,纯干货讲解

    原标题:C语言指针难吗?纸老虎而已,纯干货讲解 指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文 ...

  4. BinaryTreeTraversal(二叉树遍历)

    二叉树遍历 遍历命名 根据访问结点操作发生位置命名: ① NLR:前序遍历(Preorder Traversal 亦称(先序遍历)) --访问根结点的操作发生在遍历其左右子树之前. ② LNR:中序遍 ...

  5. 广外计算机考研专业课,【广外考研论坛】 21广外各专业考研问题全解答!纯干货!...

    原标题:[广外考研论坛] 21广外各专业考研问题全解答!纯干货! #关于广外报考问题 Q:招生目录上公布的招生人数是最终确定人数的吗? A:研究生招生是头年各招生单位出招生简章,次年教育部才下达招生计 ...

  6. java二叉树原理_史上最全二叉树遍历详解(Java实现,原理相同)

    二叉树遍历方法合集: 最近在LeetCode力扣上刷数据结构的二叉树合集,遇到的二叉树遍历方法,于是想理解透彻.本文讲解了二叉树遍历的四种方法,前.中.后序遍历. 对应题目: 94.二叉树的中序遍历 ...

  7. 纯干货-17 分布式深度学习原理、算法详细介绍

    介绍 无监督的特征学习和深度学习已经证明,通过海量的数据来训练大型的模型可以大大提高模型的性能.但是,考虑需要训练的深度网络模型有数百万甚至数十亿个参数需要训练,这其实是一个非常复杂的问题.我们可以很 ...

  8. 数据结构——二叉树遍历和常见问题

    树的概念: 1.树的概念 要了解二叉树的遍历规则必须先要知道树的结构和概念. 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合.把它叫做树是因 为它看起来像一棵 ...

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

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

最新文章

  1. AMD与intel CPU型号大全(接口)
  2. 动物统计加强版(贪心,字典序)
  3. nvme驱动_耗时3天2夜,搞定了macbook pro(2015款)更换nvme固态,经验分享一下,希望能帮到有需要的人!...
  4. 数据结构与算法 | 二叉树的实现
  5. 3-点的坐标及最远距离问题
  6. java增加内容辅助_Eclipse自定义内容辅助基于默认Java内容辅助结果
  7. jQuery源码结构
  8. VC编译生成asm文件设置
  9. c语言rank函数使用实例,rank函数实例(1)
  10. 大数据发展与情报资源整合的关系探索
  11. 如何将图片文字转换成word
  12. Ubuntu20.04 搭建repo + gitlab的代码管理系统
  13. hive和presto处理月末月初
  14. 如何获取Windows 10的锁屏壁纸
  15. git reflog 恢复已删除分支
  16. 大型综合网络搭建详细步骤教程
  17. LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串
  18. 计算机英语中文谐音,翻译成中文的英文歌 英文歌用中文谐音唱
  19. 学习matlab(七)——符号计算
  20. 投射式AR/AR眼镜的标定之相机姿态、Unity投影矩阵的计算

热门文章

  1. 纪念左耳朵耗子(陈皓)
  2. idea+git合并分支解决冲突及详解
  3. LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件...
  4. 微信小程序--亲戚称呼计算
  5. JPMML调用PMML机器学习模型零基础总结(内含新版本jpmml解决方法)
  6. 前端逼死强迫症系列之css
  7. Python之,评委打分。A~F六位参赛选手,去除最高与最低分之后的的评分为…
  8. 将STemWin526_CM3_Keil.lib更换成STemWin V5.44版本
  9. python竞赛试题及答案_python练习题答案
  10. unity 完美像素_完美风暴过后– Unity Hack Week XII