已知某二叉树的后序遍历和中序遍历的序列分别为?

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

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


从后序遍历知道,最后一个必然是根节点,因此A是根。再结合中序遍历可知BDFG是A的左子树部分,HEC是右子树部分。
先看A的右子树部分,右子树部分的中序遍历:CHE,后序遍历:HEC。从后序遍历中看A的右子树部分HEC,所以C是根。结合中序CHE来看,HE在C的右子树部分。
左子树同理

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部
已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA。
前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点。中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为DBGE。去掉根节点和左子树节点,右子数节点为CHF。前序遍历的第二个节点为B,由2知B为左子树节点,所以B为左子树的根节点。
由前序遍历,DEG在B节点下面,由中序遍历,D是B的左节点,GE是B的右节点。由前序遍历,E是G的根节点,由中序遍历,G是E的左子节点。由前序遍历,C是二叉树的右根节点,由中序遍历,C不含左子节点,HF为C的右子节点。由前序遍历,F为H的根节点,由中序遍历,H为F的左子节点。
在二叉树中,求后序遍历,先左后右再根,即首先遍历左子树,然后遍历右子树,最后访问根结点。则该二叉树的后序遍历是DGEBHFCA。
扩展资料:非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!


已知某二叉树中序和后序序列分别是中序:BFDGACHE 后序:FGDBHECA 画出...
从后序遍历知道,最后一个必然是根节点,因此A是根。再结合中序遍历可知BDFG是A的左子树部分,HEC是右子树部分。先看A的右子树部分,右子树部分的中序遍历:CHE,后序遍历:HEC。从后序遍历中看A的右子树部分HEC,所以C是根。结合中序CHE来看,HE在C的右子树部分。左子树同理 ...

设某二叉树的后序序列为CBA,中序序列为ABC,则该二叉树的前序序列为...
如本题 根据前序,可以确定A为根,A在中序中的位置,可以确定CB为A的左子树上的结点,没有右子树。确定A之后,再看中序第二值为B,查看B在中序中的位置,C在B左边,确定C为B的左子树。所以本题的具体二叉树如下:A \/ B \/ C 所以后序是CBA 从网友名叫wzhappysnail那里复制的 ...

某二叉树的前序遍历序列是什么呢?
某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为ABCDE。中序遍历:访问根节点在左右子树之间,即左—根—右。后序遍历:访问根结点在源左右子树之后,即左—右—根。由定义可以知道:后序遍历中最后一个就是树根结点,即A结点。中序遍历的根节点前面的节点均为左子树的节点,所以...

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

已知二叉树的中序序列和后序序列,怎么求前序序列
3、在后序序列LHD中最后出现的元素为D,HL|D|B|EK|A|FCG 4、在后序序列LH中最后出现的元素为H,H|L|D|B|EK|A|FCG 5、在后序序列KE中最后出现的元素为E,H|L|D|B|E|K|A|FCG 5、在后序序列FGC中最后出现的元素为C,H|L|D|B|E|K|A|F|C|G 6、所有元素都已经定位,二叉树...

某二叉树,先序ABDGCEFH,中序DGBAECHF,求后续遍历。 请给予解题思路...
这样一来 图就出来了 然后再看后序就很容易了 (做多了这样的题就可以心算出后序了)后序是 左右根(LRD) 先看最左边 A的左边是B B的左边是D D没有左边了 所以后序的第一个是D 然后看D的右边是G 后序的第二个是G D和G看完了往上看就是B 这样一来 A的左部分就出来的 后序前三...

二叉树的后序遍历访问顺序是gdbehfca, 中序遍历访问顺序是dgbaechf...
得到的树:a为根节点,b为其左孩子,c为右孩子;d为b左孩子,g为d右孩子;e为c左孩子,f为c右孩子,h为f左孩子 前序是abdgcefh?

数据结构二叉树已知中序遍历,后序遍历,求先序遍历???
3.左子树2个结点右子树也为2个,因为后序遍历是先左再右因此将后序分为两段左DB,右EC 4.由此确定左子树的根为B,右子树根为C 5.在回到中序中左子树部分 BD (B为根)其右子树为D 左子树部分 根为C右子树为E 如果结点和多的时候判断都是这样递归地进行.由上述推得的结果 得到2叉树的结构...

已知二叉树中序遍历DBEAFGC,后序遍历DEBGFCA,求前序遍历?跪求大神过程...
先找根,再找哪些部分是一棵子树里的,在子树里也是先找根,再找它的子树。递归下去,最后出现的一个节点就是叶子,数的结构就出来。例:若某二叉树的前遍历访问顺序是序abdgcefh,中序遍历顺序是dgbaechf 由前序遍历结可知a为根结点,再看中序遍历结果,因为中序遍历顺序是左子树、根、右子树,...

已知二叉树的中序遍历结果: BDCEAFHG。后序遍历结果:DECBHGFA,画出此二 ...
中序遍历按左子树、根结点、右子树的顺序;后序遍历按左子树、右子树、根结点的顺序。后序结果中A最后访问,所以A是根结点,结合中序结果可知,BDCE则都在二叉树的左边。后序结果中DECB最后访问B,则B就是A的左子树;中序最先访问B,说明B没有左子树,只有右子树……总之结合中后序遍历的结果,...

奉新县17877784385: 已知某二叉树的后序遍历和中序遍历的序列分别为? -
素怕加味: 您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA. 前...

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

奉新县17877784385: 已知二叉树中序和后序遍历怎么求前序遍历遍历啊? -
素怕加味: 自己写个stack 我给你写的前后中写法吧. 前MyStack<TreeNode *> stack;while(true){while (lpCurNode){if (lpfun!=NULL){(this->*lpfun)(lpCurNode);stack.Push(lpCurNode);}lpCurNode=lpCurNode->m_lpLeft;}if (!stack.Pop(lpCurNode))...

奉新县17877784385: 已知某二叉树的后序遍历是DACBE,中序遍历序列是DEBAC,则它的前序遍历序列是? 答案是EDBAC,为什么呢? -
素怕加味: 由于后序遍历序列中排在最后的是E,说明E是根结点;又由于中序遍历序列中仅D排在E之前,其余的结点B、A、C相继排在E之后,说明D为根结点E的左子树,其余的结点B、A、C在根结点E的右子树上,结构如下图所示: 后序遍历序列中B排在E的前一位,说明B就是根结点E的右子树的根,即B是E的右孩子,再结合中序遍历序列,可以发现B没有左孩子,那么结点A、C均在结点B的右子树上,结构如下图所示: 后序遍历序列中A排在C的前一位,说明A是C的孩子,而中序遍历序列中A也排在C的前一位,可以进一步确定A是C的左孩子,这样的话,该二叉树完整的结构图应为:那么,该二叉树的正确前序遍历序列应该为 EDBCA.

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

奉新县17877784385: 已知一棵二叉树的后序遍历序列为:ABCDEFGH,中序遍历序列为:CBDEAFHG -
素怕加味: 先序遍历应该是FCIEDAGBH 前序遍历:FCIEDAGBH 二叉树如图 F / \\ C D \\ / \\ I A H / / E G \\ B

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

奉新县17877784385: c语言,计算机基础,请问已知二叉树的中序遍历为BDCEAFHG,和后序遍历EDCBHGFA,二叉树 -
素怕加味: 中序遍历为BDCEAFHG(左根右) 后序遍历EDCBHGFA(左右根) 所以,根为A,左子树BDCE,右子树FHG 同理,再次可求得左子树BDCE中B应为左子树:但在后序遍历中B为EDCB中的根. 所以,题目有错. 如有疑问,请追问.

奉新县17877784385: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是什么? -
素怕加味: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA. 前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点.中序遍历的根节点前面的节点均为左子树的节点,所以左子树上...

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