已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树.

作者&投稿:陟油 (若有异议请与网页底部的电邮联系)
已知二叉树的后序遍历序列和中序遍历序列,怎样求其前序遍历序列!~

首先理解概念:
前序遍历:访问根结点的操作发生在遍历其左右子树之前。
中序遍历:访问根结点的操作发生在遍历其左右子树之中(间)。
后序遍历:访问根结点的操作发生在遍历其左右子树之后。
eg:后序遍历为DBCEFGHA,中序遍历为EDCBAHFG,求前序遍历(网上例子)
解:首先 看后序遍历DBCEFGHA,A为总根节点
然后 寻找中序遍历EDCBAHFG中A位置,则EDCB在A的左枝,HFG在A的右枝;
重复前两步,从后序遍历最后一位找,在中序遍历寻找对应点,得出左右分枝...
最后得到AECDBHGF,再自己验证即可...

确定树的根。树根是当前树中所有元素在后序遍历中最后出现的元素。
求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点。

扩展资料:
若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。
除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。
平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
参考资料来源:百度百科--二叉树

后续遍历的顺序是左右根,中序遍历的顺序是左根右 

这点应该懂吧 

由后续访问序列可以看出最后一个被访问的必定是这个树的根 

而中序遍历的序列可以看出,一棵树当根确定后,在根前面被访问的是他的左子树,后边的是他的右子树元素 

弄懂了上边两点就开始做题吧 

由后序遍历序列是DBCEFGHA 

为了方便,我写小写字母了啊 

可以看出整棵树的根节点是a 

再看中序遍历序列EDCBAHFG 

a是根节点 

左子树由a左边的元素EDCB构成 

右子树由a右边的元素HFG构成 

也就是 

/----\ 

EDCB--HFG 

到这里应该都懂吧 

那接下来就着重讲一下左子树的确定 

右子树同理可得了 

看左子树有4个元素EDCB 

后序遍历序列是DBCE 

最后访问e 

可以确定a下边连接的是e 

根据中序遍历序列EDCB 

最先访问e 

由于中序遍历e前面没有元素 

可以确定e左子树为空 

即下面的样子 

/\ 

dbc 

也就是还剩下dbc的顺序没理好 

后序遍历序列是dbc 

最后访问c 

则c为根节点 

连接e 

中序遍历序列dcb 

c前边有d 

后边有b 

哪么可以确定dcb这棵树为 

/\ 

d b 

哪么整棵树的左子树就确定了 

为 

/\ 

d b 

同理 

右子树应为 

则整棵树就出来了 

为下图所示 

得出整棵树 

前序遍历自然不在话下 

为aecdbhgf 

------------------------

晕了,想偷下懒都不行呵

同理就是要你自己照着刚才的方法再推右边啊

左边在上边已经说了

那我们来看右边

右边剩下HFG

后序遍历序列是fgh

h最后被访问

可以确定h是右子树的根

也就是与a连着的是h

接下来看中序遍历顺序是HFG

h前面没有元素

说明h的左子树为空

剩下的g和f都是他的右子树的元素

再看后续遍历序列FG

g最后被访问

可以确定g是根节点连接h

然后看中序遍历序列fg

f在前

哪么f应该为g的左子树

整棵树就出来了

再不懂我也不知道怎么解释了

------------------------- 

好久没做类似的题 

有点生疏了 

若果有错 

欢迎指出



前序遍历:AECDBHGF
二叉树: A
/ \
E H
\ \
C G
/ \ /
D BF


二叉树的后续遍历是什么意思啊?
树的后序遍历是指先依次后序遍历每棵子树,然后访问根结点。当树用二叉树表示法(也叫孩子兄弟表示法)存储时,可以找到唯一的一棵二叉树与之对应,我们称这棵二叉树为该树对应的二叉树。那么根据这个法则可知,树的后序遍历序列等同于该树对应的二叉树的中序遍历。从二叉树的递归定义可知,一棵非空...

【VB】已知某二叉树的后序遍历序列是DACBE,中序遍历序列是DEBAC,则它...
2.在中序遍历DEBAC中找到E的位置,可知D在左子树,BAC在右子树 3.再回到后序遍历观察BAC的相对位置可知B为根 4.再回到中序遍历找到B的位置,可知AC均在右子树 5.再回到后序遍历观察AC的相对位置可知C为根 6.再回到中序遍历找到C的位置,可知A在左子树 由此可画出树的结构,进而得知前序遍历为...

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

二叉树的前序中序后序怎么看
中序遍历(中根遍历):先访问左子树,然后访问根节点,最后访问右子树。例如,对于二叉树1一2一3一4一5,中序遍历的结果为2一1一4一3一5。可以想象成按树画好的左右位置投影下来。后序遍历:先访问左子树,然后访问右子树,最后访问根节点。例如,对于二叉树1一2一3一4一5,后序遍历的结果为4...

某二叉树,先序ABDGCEFH,中序DGBAECHF,求后续遍历的解题思路有哪些...
分析过程:以下面的例题为例进行讲解:已知一棵二叉树的先序遍历序列和中序遍历序列分别是abdgcefh、dgbaechf,求二叉树及后序遍历序列。分析:先序遍历序列的第一个字符为根结点。对于中序遍历,根结点在中序遍历序列的中间,左边部分是根结点的左子树的中序遍历序列,右边部分是根结点的右子树的中序...

已知二叉树的中序序列和后序序列,怎么求前序序列?
求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。...

...中序遍历序列为CBAEDF,则后序遍历序列为什么?
先序列号为这个,那么在编辑的时候,可以先进行用顺序的方式,然后再进行。后序序列是CBA。根据前序,可以确定A为根,A在中序中的位置,可以确定CB为A的左子树上的结点,没有右子树。确定A之后,再看中序第二值为B,查看B在中序中的位置,C在B左边,确定C为B的左子树。

已知二叉树的先序遍历序列为ABDGCEF,中序遍历序列为DGBAECF,画出二叉树...
二叉树根节点为A,A的左节点为B,B的右节点为D,A的右节点为C,C的左节点为E,后序遍历序列为DBECA。画法:根E,E左A右F,A右B,B右D,D左C,F右H,H左G右I,I右K,K左J 先看先序,其第一个为树的根,先序遍历是先根再左子树最后右子树,第一个肯定是树的根,先画A,A再中...

某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为...
某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为EDABC。首先,后序遍历的意思是先访问父节点的左右两个子节点,最后访问父节点。因此后序遍历序列的最后一个元素就是二叉树的根节点,即E,于是CBAD为E的后代节点。现在继续查看中序遍历,中序遍历的意思是,先访问父节点的左...

如何从后序遍历求原二叉树?
1、先求原始二叉树,后序遍历中最后出现的是根,所以A是整棵树的根,在结合中序遍历来看 BDCE是A的左子树,而FHG是A的右子树;2、BDCE序列中B是整个序列根,因为后序遍历中B最后出现。此时再看中序中根B左端没有左子 树,右端有DCE,所以DCE是B的右子树 ;3、再看D、C、E在后序遍历中C...

九江县13336096319: 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 -
宋俩盐酸: 选D 首先看后续遍历,最后的c是二叉树的根节点,然后看中序遍历,最后一个又是c,所以这个二叉树根节点没有右子树. c的位置得到后,再看后续遍历,e在c前面,所以e是c的左孩子节点,e的位置得到. 然后再看中序遍历,e前面只有一个d,所以d是e的左孩子节点,d的位置得到;剩下的b和a就在e的右子树. 然后再看后序遍历,dabec,d是一个叶子节点,那么就还有一个叶子节点,那么这个节点就一定是a,那么b就是e的右孩子节点,最后再结合中序遍历就可得出所表示得二叉树.(如果这步没看懂,可以在前面得基础上一个一个的试,也不麻烦,就四种可能,最后只有一个是符合的)

九江县13336096319: 已知二叉树的前序和中序,构造该二叉树的方法是什么 -
宋俩盐酸: 以下面的例题为例进行讲解: 已知一棵二叉树的先序遍历序列和中序遍历序列分别是ABDCEF、BDAECF,求二叉树及后序遍历序列. 分析:先序遍历序列的第一个字符为根结点.对于中序遍历,根结点在中序遍历序列的中间,左边部分是根...

九江县13336096319: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是什么? -
宋俩盐酸: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA. 前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点.中序遍历的根节点前面的节点均为左子树的节点,所以左子树上...

九江县13336096319: 已知某二叉树的后序遍历序列是dabec,中序遍历序列是deabc,它的前序遍历序列是 -
宋俩盐酸:[答案] 后序:左 右 根 中序:左 根 右 由定义可以知道: 1、后序遍历中最后一个就是树根节点,即C节点 2、在中序遍历中,根结点左边的是左儿子集,右边的是右儿子集,即deab是根节点C的左儿子集合 问题就会转化为: 求后序遍历是dabe,中序遍历...

九江县13336096319: 已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树. -
宋俩盐酸: 后续遍历的顺序是左右根,中序遍历的顺序是左根右这点应该懂吧由后续访问序列可以看出最后一个被访问的必定是这个树的根而中序遍历的序列可以看出,一棵树当根确定后,在根前面被访问的是他的左子树,后边的是他的右子树元素...

九江县13336096319: 已知二叉树的中序遍历是DBEAFC.前序遍历是ABDECF.后序遍历怎么算? -
宋俩盐酸: 先理解前序和中序的涵义: 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树.在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.在遍历左...

九江县13336096319: 根据下图给出的二叉树,求出先序遍历、中序遍历和后序遍历的结点序列 a / \ b c / / d e \ f -
宋俩盐酸: 先序遍历abdcef 中序遍历dbaefc 后序遍历dbfeca 其实这种问题的解法很简单,你绕着二叉树从根节点左边画一条线绕过整个2叉树然后回到根节点,先序遍历就是线经过左边的时候的顺序,中序遍历就是线经过下面的时候的顺序,后续遍历就是经过右边的时候的顺序,掌握方法了终身都不用问别人了!见下图

九江县13336096319: 已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?麻烦再画下这二叉树.楼下这位很我大概知道了,目前停留在... -
宋俩盐酸:[答案] 后续遍历的顺序是左右根,中序遍历的顺序是左根右 这点应该懂吧 由后续访问序列可以看出最后一个被访问的必定是这个树的根 而中序遍历的序列可以看出,一棵树当根确定后,在根前面被访问的是他的左子树,后边的是他的右子树元素 弄懂了上...

九江县13336096319: 设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列 -
宋俩盐酸: 这个先根据后序遍历确定根节点为C.再根据中序遍历得到根节点的右孩子为A.然后根据后序遍历确定,B是根节点的左孩子,D是B的孩子.再根据中序遍历,得到D是B的右孩子.根据这个画出二叉树. 前序遍历结果是:CBDA.扩展资...

九江县13336096319: 知某二叉树的后序遍历和中序遍历如下,构造出该二叉树. 后序遍历序列:DBEIHFCA中序遍历序列:DGBAECHIF -
宋俩盐酸: 二叉树 A / \ B C / / \ D E F \ / G H \ I 先序遍历序列: A B D G C E F H I 中序遍历序列: D G B A E C H I F 后序遍历序列: G D B E I H F C A//C语言测试程序#include "stdio.h"#include "stdlib.h" struct tree { char data; struct tree *left; struct tree ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网