已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是

作者&投稿:厉琬 (若有异议请与网页底部的电邮联系)
已知二叉树后序遍历序列是dabec,中序遍历序列debac,它的前序遍历的序列是~

由后序(左子树,右子树,根节点)dabec知道根节点为c,再通过中序(左子树,根节点,右子树)知道右子树为空
接着由dabe知道其根节点为e,所以在中序deba中左子树为d右子树为ba
再来,后序ab,中序ba,b为节点,a为右子树
前序遍历序列为cedba
----c
---/
--e
-/--\
d ----b
-------\
---------a

前序遍因序列是cedba。
二又树的遍历有3种:前序、中序和后序。
①前序首先遍历访问根结点,然后按左右顺序遍历子结点。
②中序遍历首先访问左子树,然后访问根结点,最后遍历右子树。
③后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。本题根据后序和中序遍历的结果可以得出二叉树的结构,然后再对其进行前序遍历。
二叉树
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点。
深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。
一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。

选D

首先看后续遍历,最后的c是二叉树的根节点,然后看中序遍历,最后一个又是c,所以这个二叉树根节点没有右子树。

c的位置得到后,再看后续遍历,e在c前面,所以e是c的左孩子节点,e的位置得到。

然后再看中序遍历,e前面只有一个d,所以d是e的左孩子节点,d的位置得到;剩下的b和a就在e的右子树。

然后再看后序遍历,dabec,d是一个叶子节点,那么就还有一个叶子节点,那么这个节点就一定是a,那么b就是e的右孩子节点,最后再结合中序遍历就可得出所表示得二叉树。(如果这步没看懂,可以在前面得基础上一个一个的试,也不麻烦,就四种可能,最后只有一个是符合的)



中序遍历:DEBAC    

后序遍历:DABEC


推导如下:

1、从后序可知树根为C,因为最后的节点是树根。

2、从中序的规则可知树根在中间,树根的左边是左孩子,右边是右孩子。很明显树根C是没有右孩子,只有左孩子DEBA。


中序遍历:DEBA

后序遍历:DABE

推出E是左子树的根结点,并且存在左子树D,右子树BA,因为从中序遍历可知E的左边是D,右边是BA


中序遍历:BA

后序遍历:AB

推出B是右子树的根结点,并且存在右子树,但没有左子树,因为从中序遍历可知B只有右子树,没有左子树。


还原二叉树如下图:


前序为:CEDBA

推导的方法只需记住下面的规则即可,然后逐步分割法,就像我上面那样推导。拿到左右子树反复套用下面的遍历规则,很快就可以还原一棵完整的树。

1.先序遍历:根、左、右

2.中序遍历:左、根、右

3.后序遍历: 左、右、根



这种题,主要考虑个节点的逻辑关系,先序遍历就是:根左右后序遍历就是:左右根,中序遍历就是:左根右。
抓住一个关键,例如本题中后序和中序第一个节点都是D,那么可以确定:D没有右子树,D本身是一个节点的左子树。中序遍历,D后面是E,说明D父节点是E,在草稿上画出来这个关系。在看中序遍历E后面是B,说明B是E的右子树,这样我们确定了3个节点了。再看中序的遍历B后的是A,但我们无法确定是左还是右,先放着,继续看后序遍历E后面是C,通过这个条件,说明C可能是E的父节点的右子树,也可能就是E的父节点,但是本题一共只有5个节点,所以C肯定是E的父节点。这样,我们可以确定4个节点了,这剩下A节点。要区分A是左还是右,我们看后序遍历,A是在D之后,B之前,这个条件也只能说A是B子节点,但仍然不能说明左右。所以我觉得:这道题有2个解:A在左在右,都是正确的。A是左是右,都符合后序和中序的遍历,都为正确。所以,只画这个图是不完整的,应该把A分别为左右节点的图都画出来,作为答案,A的位置不同,虽然先序遍历的结果都一样,但是图是不一样的。
不知你看懂没有。

前序: 根左右
中序: 左根右
后序: 左右根

```````````````````C
/
e
/ \
d b
\
a

前序: cedba

dbacde,就是这样的,虽然我不会,但是瞎写谁不会啊,😂😂

后序遍历是dabec,中序遍历是debac,求前序遍历??求类似的东西,有没有...
答:前序遍历为:c e d b a 先从后序遍历是dabec=>得出根节点为C;再从中序遍历是debac=》因为中序遍历最后是 C,由此可见,此二叉树只有左支树,没有右支树。再从后序遍历是dabe=〉得出左支树根为e,然后从中序遍历是deba=〉左支树又分为左右两支树,由此类推,就得到结果c e d b a ...

已知二叉树后序遍历是dabec,中序遍历是debac,求前序遍历
答:左一定优先于右 ,所以根的位置有三种。根 左 右、左 根 右、左 右 根。分别称为先序遍历、中序遍历、后续遍历,子树也一样,到一个子树就遍历一次,按照遍历顺序写下去就好,尤其注意根特殊对待(只有一个所以只写一个)。看后续遍历最后一位或者前序遍历首位 就知道跟在哪里。“C”你确定你的...

二叉树的先序,中序,后序遍历是?
答:前序遍历就是先遍历根节点,然后遍历左节点,最后是右节点;中序遍历就是先遍历左节点,然后遍历中间的根节点,最后是右节点;后序遍历就是先遍历左节点,然后遍历是右节点,最后是中间的根节点。二叉树的这三种遍历方法,是按照每颗子树的根节点顺序遍历的。

数据结构关于遍历二叉树的一道题目 急急急 在线等啊
答:)A.CABDEFG B.ABCDEFG C.DACEFBG D.ADCFEG 33.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为(A )。A.CBEFDA B.FEDCBA C.CBEDFA D.不定 34.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac ,它的前序遍历是(D )。A.acbed B....

二叉树先知道后序和中序,求先序
答:后序DABEC 中序DEBAC;由后序最后一个字母知:整个树的开始结点为C;由中序C的位置知:C前面的为结点C的左子树;C后面的为结点C的右子树;所以经过第一次推理,C为根结点,DEBA为其左子树;然后去掉C,考虑下面的左子树。后序DABE 中序DEBA由后序最后一个字母知:整个左子树的开始结点为E;由中...

谁有浙江省计算机二级考的试题或者可以下载的网址???告下额,谢谢额_百...
答:计算机等级考试二级C语言模拟试题(1)及答案 一、选择题(每题2分,共计70分) 1.栈和队列的共同特点是 A)都是先进先出 B)都是先进后出 C)只允许在端点处插入和删除元素 D)没有共同点 2.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 A)acbed B)decab C)deabc D)cedba 3...

二叉树先、中、后序的简单理解
答:    此外,还有一个命题:给定了二叉树的任何一种遍历序列,都无法唯一确定相应的二叉树。但是如果知道了二叉树的中序遍历序列和任意的另一种遍历序列,就可以唯一地确定二叉树。例子1:已知二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(cedba)。(1)中序遍历...

计算机二级考试题目(2)
答:(53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(A) 注:P38,前提要掌握三种遍历的方法 A. cedba B. acbed C. decab D. deabc (54) 在下列几种排序方法中,要求内存量最大的是(D) 注:要牢记,书中没有提到。 A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (...

大工13秋数据结构在线作业答案
答:D. 是任意一棵二叉树 正确答案:C 4. 树中的结点数等于所有结点的度数加( )。A. 0 B. 1 C. 2 D. 3 正确答案:B 5. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac , 它的前序遍历是( )。A. acbed B. decab C. deabc D. cedba 正确答案:D 6. union(A...

计算机二级基础题
答:(53) 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是___。(A) A. cedba B. acbed C. decab D. deabc (54) 在下列几种排序方法中,要求内存量最大的是___。(D) A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序 (55) 在设计程序时,应采纳的原则之一是___。(A)...