有一棵二叉树的先序和中序遍历分别如下,画出该二叉树(...
先序:A B C D E F G H I J
中序:C B E D A G H F J I
确定根是A,C B E D在A的左子树上,G H F J I在A的右子树上。
先序:B C D E
中序:C B E D
确定B是根,C是B的左孩子,E D在B的右子树上。
先序:D E
中序:E D
确定D是根,E是D的左孩子。
先序:F G H I J
中序:G H F J I
确定F是根,G H在F的左子树上,J I在F的右子树上。
先序:G H
中序:G H
确定G是根,H是G的右孩子。
先序:I J
中序:J I
确定I是根,J是I的左孩子。
综合起来,树的结构如下所示:
A
B F
C D G I
E H J
后序遍历序列:C E D B H G J I F A
有一棵二叉树的先序和中序遍历分别如下,画出该二叉树(...
序:A B C D E F G H I J
中序:C B E D A G H F J I
确定根是A,C B E D在A的左子树上,G H F J I在A的右子树上。
先序:B C D E
中序:C B E D
确定B是根,C是B的左孩子,E D在B的右子树上。
先序:D E
中序:E D
确定D是根,E是D的左孩子。
先序:F G H I J
中序:G H F J I
确定F是根,G H在F的左子树上,J I在F的右子树上。
先序:G H
中序:G H
确定G是根,H是G的右孩子。
先序:I J
中序:J I
确定I是根,J是I的左孩子。
综合起来,树的结构如下所示:
A
B F
C D G I
E H J
后序遍历序列:C E D B H G J I F A
汗马绝尘安外振中标青史 锦羊开泰富民清政展新篇 春满人间
凑合着看吧
很显然你还不懂的遍历一棵二叉树的原理
当你拿到一棵二叉树,无论它的形状如何的千奇百怪
我们都可以将它按照如下的方式划分
根
/ \
左子树 右子树
一棵有很多个节点的二叉树可以划分为以上的形式
也可以这么理解,只要是按以上形式组合的都可以称为是二叉树
一个仅仅只有根节点的二叉树也可以划分成以上的形式,只不过他的左右子树都为空罢了
所以,我们发现,二叉树的定义其实是一个递归定义的过程
大的二叉树是由小的二叉树构建而成的
所以,当我们考虑要遍历一棵二叉树时
也是首选递归的遍历
遍历二叉树
它的基本思想是先按照上面的形式把整棵二叉树划分为3部分
哪么接下来的工作就很简单了
我们只需要将这3部分都遍历一遍就可以了(这里用到了分而治之的思想)
而对于这3部分来说
根节点的遍历无疑是最方便的,直接访问就ok了
而对于左右子树呢?
我们不难发现,左右子树其实分别成为了两棵完整的树
他们拥有各自独立的根节点,左子树和右子树
对他们的遍历,很显然应该与刚才的遍历方法一致便可
(如果上面的都理解了,那么这个题就是小菜一碟了,如果觉得无法理解,可以按照下面的方法自己多分解几棵树)
对于这个题目,中序遍历这可二叉树
先看根节点
1
/ \
左子树 右子树
我们应该先遍历左子树
也就是下面这棵树
2
/ \
4 5
对于这棵树在进行中序遍历
我们应先遍历她的左子树
他只有一个根节点4,左右子树都为空
哪么遍历这个只有一个根节点的二叉树
先访问她的左子树,为空
返回
访问该树的根节点4
在访问右子树也为空
此时,这棵树已经被完全的遍历了
我们需要返回上一层也就是
2
/ \
4 5
这棵树
此时,她的左子树已经被访问完毕
根据中序遍历的规则
需要访问此树的根节点2
此时的访问顺序是4-2
访问了根节点
在访问右子树只有一个根节点的5(具体过程看4的访问)
5访问完毕
也就意味着
2
/ \
4 5
这棵树已经访问完了
需要返回上一层
也就是1为根的树
此时这棵树的左子树已经访问完毕
此时访问的顺序是4-2-5应该没有问题
接下来访问根节点1
在访问右子树
3
/ \
4 7
是不是觉得似曾相识???
她的访问应该跟
2
/ \
4 5
一致
哪么最终遍历的顺序也出来了
4-2-5-1-6-3-7
-----------------------------
花了10多分钟
希望对你有所帮助
顺便自己也复习下
呵呵
一只一棵二叉树的先序遍历结果为abcdefghi,中序遍历结果为cbafegdhi...
左一定优先于右 ,所以根的位置有三种。根 左 右、左 根 右、左 右 根。分别称为先序遍历、中序遍历、后续遍历,子树也一样,到一个子树就遍历一次,按照遍历顺序写下去就好,尤其注意根特殊对待(只有一个所以只写一个)。后续遍历是:CBEFDA 依据前序遍历序列可确定根结点为A;再依据中序遍历...
2.已知一棵二叉树的先序遍历和中序遍历分别是ABCDFEG,BAFDCEG,请画出...
该二叉树为 A \/ \\ B C \/ \\ D E \/ \\ F G 后序遍历是: BFDGECA
一棵二叉树的前序ABCD 中序BADC后序
后序为BDCA 树形图 A B C D 解释:BC分别为A的左孩子和右孩子,D为C的左孩子 按照后序遍历顺序:后序左—右—根 后序:BDCA
若一棵二叉树的前序遍历和后序遍历
答案的确是c,你说的1为根结点也没有错,因为根据前序和后序的结论都说明如此,不过那个说明3是根错了 按照条件就可以知道结点1在第一层,2在第二层,3在第三层,4在第四层,因此中序遍历abd都有可能出现,但是对于答案c而言,如果第一个出现的是3结点,该结点就是最左结点,接下来就应该是4...
数据结构(C语言版),求高手解决。。
1.二叉树是度为2的有序树( )【答案】× 2.完全二叉树一定存在度为1的结点( )【答案】× 3.深度为K的二叉树中结点总数≤2k-1( )【答案】√ 4.由一棵二叉树的先序序列和后序序列可以惟一确定它( )【答案】× 5.完全二叉树中,若一个结点没有左孩子,则它必是树...
二叉树先序序列和中序序列相同的条件是什么
二叉树先序遍历就是先访问自己,然后左子树,然后右子树。二叉树的中序遍历是先访问左子树,然后访问自己,最后右子树。所以要让上述两个过程一样,唯一的办法就是左子树不存在,也就是对于二叉树上的任意节点,他的左子节点为空。每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外...
C++: 已知一棵二叉树的先序序列和中序序列分别为ABDGLHEICFJK和GLDHB...
二叉树和森林如图所示:
一棵二叉树的先序遍历次序为ABDGECFH,中序遍历次序为DGBEAFHC,则其后...
由先序遍历次序为ABDGECFH可知,二叉树的根为A;再由中序遍历次序为DGBEAFHC,可知根A的左子树中序遍历次序为DGBE,根A的右子树中序遍历次序为FHC;再看先序遍历次序ABDGECFH,可知根A的左子树先序遍历次序为BDGE,根A的右子树先序遍历次序为CFH;根据根A的左子树先序遍历次序为BDGE,中序遍历...
C++: 题目如下:已知一棵二叉树的先序,中序和后序序列如下,其中各有一部...
C++:题目如下:已知一棵二叉树的先序,中序和后序序列如下,其中各有一部分未给出其值,请构造出该二叉树。先序:A_CDEF_H_J中序:C_EDA_GFI_后序:C__BHGJI__... C++:题目如下:已知一棵二叉树的先序,中序和后序序列如下,其中各有一部分未给出其值,请构造出该二叉树。 先序:A_C D E F_H_J ...
已知一棵二叉树的先序遍历序列为ABDGHCEIF,它的中序遍历序列是BGDHAEI...
根据先序遍历和中序遍历,我们可以将这颗二叉树画出来,如下图。所以,根据图片,得出层次遍历序列为:ABCDEFGHI。
慕封苯丁:[答案] 先序:A B C D E F G H I J 中序:C B E D A G H F J I 确定根是A,C B E D在A的左子树上,G H F J I在A的右子树上. 先序:B C D E 中序:C B E D 确定B是根,C是B的左孩子,E D在B的右子树上. 先序:D E 中序:E D 确定D是根,E是D的左孩子. ...
淇县13767254791: 有一棵二叉树的先序和中序遍历分别如下,画出该二叉树(描述生成过程),并写出其后序遍历序列. - ?
慕封苯丁: 先序:A B C D E F G H I J 中序:C B E D A G H F J I 确定根是A,C B E D在A的左子树上,G H F J I在A的右子树上.先序:B C D E 中序:C B E D 确定B是根,C是B的左孩子,E D在B的右子树上.先序:D E 中序:E D 确定D是根,E是D的...
淇县13767254791: 1、已知某二叉树的先序和中序遍历序列分别是: 先序:XYDEHCF 中序:DYHEXFC 画出这棵二叉树. - ?
慕封苯丁: 这个是错的,中序遍历是左子树的节点和右子树的结点混乱了,比如XY是左子树的,而HE是右子树的,不可能出现YHEX的情况
淇县13767254791: 有一棵二叉树的先序和中序遍历分别如下,画出该二叉树(... - ?
慕封苯丁: ,这个问题我以前回答过了 凑合着看吧很显然你还不懂的遍历一棵二叉树的原理 当你拿到一棵二叉树,无论它的形状如何的千奇百怪 我们都可以将它按照如下的方式划分根/ \ 左子树 右子树 一棵有很多个节点的二叉树可以划分为以上的形式 ...
淇县13767254791: 已知二叉树的前序和中序,构造该二叉树的方法是什么 - ?
慕封苯丁: 以下面的例题为例进行讲解: 已知一棵二叉树的先序遍历序列和中序遍历序列分别是ABDCEF、BDAECF,求二叉树及后序遍历序列. 分析:先序遍历序列的第一个字符为根结点.对于中序遍历,根结点在中序遍历序列的中间,左边部分是根...
淇县13767254791: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是什么? - ?
慕封苯丁: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA. 前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点.中序遍历的根节点前面的节点均为左子树的节点,所以左子树上...
淇县13767254791: 设一颗二叉树的先序、中序遍历序列分别为:先序遍历序列:ABDFCEGH, 中序遍历序列:BFDAGEHC.1) 写出其后序遍历序列; 2) 并画出它的后序... - ?
慕封苯丁:[答案] 后序:FDBGHECA线索化:画得不太好:后序线索化就是将后序序列中节点的前驱和后继关系用线标出来而已,途中的线都是双向的,除了指向F的线条,因为F没有前驱.
淇县13767254791: C++中二叉树的前序(后序、中序)遍历分别是什么意思?相应的树图怎么看? - ?
慕封苯丁: 二叉树的遍历是指按照一定次序访问树中所有结点,并且每个节点仅被访问一次的过程. 1、先序遍历(前序) (1)访问根节点; (2)先序遍历左子树; (3)先序遍历右子树. 2、中序遍历 (1)中序遍历左子树; (2)访问根节点; (3...
淇县13767254791: 五.应用题 1. 设一棵二叉树的先序、中序遍历序列分别是:ABDFCEGH 、BFDAGEHC,(1)画出这棵二叉树;(2)写这棵二叉树的后序遍历;2. 有序表r的类... - ?
慕封苯丁:[答案] 楼主要答案吗,这是标准答案,原理都在数据结构课本上,就不解释了: 第一题答案: A / \ B C \ / D E / / \ F G H 后序遍历:FDBGHECA 第二题答案: void BinInsert (SeqTable t, RecordType x) { low = 1; high =t.length; while ( low{ mid = (low+high)/2; ...
淇县13767254791: 1、已知二叉树的前序遍历序列和中序遍历序列分别是:B,A,C,D,F,E,G和D,C,A,F,G,E,已知二叉树的前序遍历序列和中序遍历序列分别是:B,A,C,D,F,E,G和... - ?
慕封苯丁:[答案] 后序:DCFGEAB