《大话数据结构》之二叉树的四种遍历
来源:互联网 发布:淘宝网鞋子女鞋图片 编辑:程序博客网 时间:2024/06/05 22:48
二叉树的遍历共分四种:前序遍历、中序遍历、后序遍历、层序遍历。
除层序遍历以外,所谓的前序、中序、后序,是按父节点所处位置的不同来划分的。父节点在两个子节点的中间,那就是中序,在两个子节点的前面那就是前序。
此外二叉树对子节点的遍历都是先左后右的。(如果说,男左女右的话,那么可以认为这样有点重男轻女,这个思想在国外也是有的(*^__^*) 嘻嘻……)
以上面这个二叉树为例。
前序遍历:
1、按前序遍历写下根节点和他的子节点
A B C
2、先左后右,看B和他的子节点,在第一步的基础上,写下按前序遍历,B和他的子节点的顺序,忽略A和C
A ( B D ) C
3、看B的左节点D,按前序遍历写下D和他子节点的顺序
A B ( D G H ) C
4、此刻A的左子树已经遍历完成,开始看右子树,同样,按父节点在前,先左后右的顺序写下C和他的子节点的序列
A B D G H ( C E F )
5、先左后右,先看C的右节点E,按父节点在前,先左后右的顺序写下E和他的子节点的序列
A B D G H C ( E I ) F
6、此时整个二叉树已经全部遍历完成,没有节点没有访问到,那么完整的序列就是
A B D G H C E I F
中序遍历:
思想和步骤与前序一样,只是父节点变成在中间访问。
1、按父节点在中间,先左后右的顺序遍历根节点和他的子节点
B A C
2、按父节点在中间,先左后右的顺序遍历根节点左节点B和他的子节点
(D B ) A C
3、按父节点在中间,先左后右的顺序遍历B的左节点D和他的子节点
(G D H ) B A C
4、根节点的左子树遍历完成,那就开始遍历右子树,C和他的子节点
G D H B A ( E C F)
5、按父节点在中间,先左后右的顺序遍历C的左节点E和他的子节点
G D H B A ( E I ) C F
6、至此所有节点遍历完成,最终中序遍历顺序为
G D H B A E I C F
后序遍历:
思想和步骤与前面是一样一样的,只是父节点变成在最后访问。
1、按父节点在后面,先左后右的顺序遍历根节点和他的子节点
B C A
2、按父节点在后面,先左后右的顺序遍历根节点左节点B和他的子节点
(D B ) C A
3、按父节点在后面,先左后右的顺序遍历B的左节点D和他的子节点
(G H D ) B C A
4、根节点的左子树遍历完成,那就开始遍历右子树,C和他的子节点
G H D B ( E F C ) A
5、按父节点在后面,先左后右的顺序遍历C的左节点E和他的子节点
G H D B ( I E ) F C A
6、至此所有节点遍历完成,最终后序遍历顺序为
G H D B I E F C A
层序遍历:
最简单的一种遍历方法。按层次,从左到右写,完全不需要考虑前后问题。
1、先遍历第一层
A
2、遍历第二层
A ( B C )
3、遍历第三层
A B C ( D E F )
4、遍历第四层
A B C D E F ( G H I )
5、所有层次遍历完成,最终层序遍历结果为
A B C D E F G H I
- 《大话数据结构》之二叉树的四种遍历
- 《大话数据结构》读书笔记之二叉树的遍历源码,和习题
- 数据结构—二叉树的四种遍历
- 数据结构之二叉树的遍历汇总
- java数据结构之二叉树的遍历
- 数据结构之二叉树的遍历
- 数据结构之二叉树的遍历
- 数据结构实验之二叉树的遍历
- 数据结构学习(四)二叉树的遍历
- 数据结构-二叉树的存储结构和遍历算法(四)
- 一步一步学数据结构之1--n(二叉树遍历--四种方法--递归式)
- 数据结构之二叉树遍历
- 数据结构之二叉树遍历
- 数据结构之树和二叉树---二叉树的遍历
- 数据结构-二叉树的三种遍历
- 二叉树的遍历:数据结构实验之二叉树二:遍历二叉树
- [C++ 二叉树的构建与遍历] 数据结构实验之二叉树二:遍历二叉树
- [C++]数据结构:链表二叉树的创建与四种遍历方式
- android gradle compile(一)
- 收集微信里的图像处理中常用的图像库
- The C++ Standard Library: Standard Exception Classes
- 审核被拒的原因搜罗
- “十三五”基础教育装备新局面
- 《大话数据结构》之二叉树的四种遍历
- POJ_1064 二分搜索
- 百度地图定位完整版
- cmd命令行字符编码修改
- 【curator】KeeperErrorCode = Unimplemented for /zookeeper/crud
- JavaScript获取Select下拉框Option的Value和Text值的方法
- scrapy爬虫之Spider
- LeetCode28:Implement strStr()
- XIB混合代码来实现布局