数据结构-二叉树的先序、中序、后序遍历
2016-10-09 19:09
471 查看
二叉树的遍历
在软考或者自考中,总有这类的试题求出下图所示的二叉树的先序遍历、中序遍历和后序遍历的节点序列
先序遍历
我来附上一张手绘图(看着有点没技术含量)这里你就会纳闷,数字1是做什么用的,别急,听我下面慢慢给您解释:
我们从A作为入口,然后把这个整个的二叉树外围画一遍,从A出发,第一次遇见B,所以我们就在B的左侧上数字1,然后第一次遇到C,所以我们在C的左侧写上数字1,然后遇到第一次遇到E,我们在E的左侧写上数字1,以此类推,把整个的二叉树遍历完全,然后我们就开始找数字1,出来的就是它的先序序列:ABCEDFGKH
思想:若二叉树为空,返回,否则:
1、遍历根节点;2、先序遍历左子树;3、先序遍历右子树,需要注意的是:遍历左右子树的时候仍然采用先序遍历方法。那么遍历的结果就是:根--左--右
中序遍历
依旧手绘图:这里你就会纳闷,数字1是做什么用的,别急,听我下面慢慢给您解释:
我们从A作为入口,然后把这个整个的二叉树外围画一遍,从A出发,发现A的左右子树都存在,那么就在A的下方写上一个数字0,然后找B,B的左右子树都存在,在B的下方协商一个数字0,C,发现C只有左子树没有右子树,那么就在C的右边写上一个数字0,然后找E,发现E没有左右子树,就在E的下方写上一个数字0,。以此类推,我们就找到了中序遍历:ECBDAGKFH
思想:
1、中序遍历左子树;2、访问根节点;3、中序遍历右子树。那么中序遍历的结果就是:左--根--右
后序遍历
依旧手绘图这里你就会纳闷,数字1和2是做什么用的,别急,听我下面慢慢给您解释:
我们从A作为入口,然后把这个整个的二叉树外围画一遍,从A出发,流入A第一次,写上数字1,继续走流入B第一次,所以写上数字1,然后流入C第一次,依旧写1,流入E第一次,写1,然后流出E流向了C,那么就遇到了E第二次,C第二次,所以写上数字2,然后流入D第一次,流出D,写上数字2,以此类推,后序遍历:ECDBKGHFA
思想:
1、后序遍历左子树;2、后序遍历右子树;3、访问根节点。所以:后序遍历的结果是:左--右--根。
相关文章推荐
- 二叉树知识点、先序、中序、后序遍历(数据结构)
- [算法与数据结构] - No.7 二叉树建立及其前序、中序、后序遍历
- 数据结构_二叉树的先序建立与先序,中序,后序(递归)遍历方式_C语言源代码
- 数据结构 —— 二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构基础 后序遍历和中序遍历还原二叉树
- 数据结构二叉树的实现,前序、中序、后序遍历
- 数据结构---二叉树的创建、先序、中序、后序遍历
- 【数据结构】二叉树结点插入和前序、中序、后序遍历的递归实现
- 【数据结构】二叉树前序、中序、后序遍历相互求法
- 数据结构:二叉树前序、中序和后序遍历的非递归表示
- [置顶] 数据结构——二叉树 前序、中序、后序、递归遍历和非递归遍历
- 【数据结构】二叉树前序,中序,后序遍历
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构-二叉树的前序、中序、后序、层次遍历
- 数据结构:二叉树的前序,中序,后序遍历(递归和非递归)
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 数据结构-二叉树(递归前序、中序、后序遍历;栈实现中序变量;二叉树镜像)
- 数据结构_输出二叉树中先序、中序、后序遍历方式中第k个节点的数据
- 数据结构:题目(4)遍历二叉树的四种方法: 依次是:层次、前序、中序、后序
- 数据结构--二叉树 的先序,中序,后序遍历