已知二叉树前序、中序遍历结果,求后序遍历结果?

作者&投稿:御凌 (若有异议请与网页底部的电邮联系)
~ 例:若某二叉树的前遍历访问顺序是序abdgcefh,中序遍历顺序是dgbaechf
(1)由前序遍历结果我们可知a为根结点,再看中序遍历结果,因为中序遍历顺序是左子树、根、右子树,因此由“中序遍历顺序是dgbaechf”可断定,dgb为该二叉树的左子树中序遍历结果,echf为右子树中序遍历结果。
(2)由前序遍历结果可知,左子树的前序遍历结果是bdg,右子树的前序遍历结果是cefh;因此,和第一步分析类似,可知b为左子树的根,再由“dgb为该二叉树的左子树中序遍历结果”可知,dg为该左子树的左子树的中序遍历结果,再由dg在前序遍历结果中排列顺序dg可知,d为根,因此由“dg为该左子树的左子树的中序遍历结果”可推出g为d的右孩子。
到此为止,可以完全推断出该二叉树的左子树的结构了。
按照同样方法,可以推断出该二叉树的右子树的结构,因此整个二叉树的结构图如下:
据此图,不难看出该二叉树的后序遍历结果是:gdbehfca.

已知一颗二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉...
答:前序先访问根节点,因此A是根节点,中序先访问左子树,再访问根,再访问右子树,因为已经确认A为根,所以,从中序可知,DBGE为左子树,A为根,CHF为右子树。然后对左、右子树分别处理。结果为DGEBHFCA

已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,试画出这...
答:左一定优先于右 ,所以根的位置有三种。根 左 右、左 根 右、左 右 根。分别称为先序遍历、中序遍历、后续遍历,子树也一样,到一个子树就遍历一次,按照遍历顺序写下去就好,尤其注意根特殊对待(只有一个所以只写一个)。后续遍历是:CBEFDA 参考资料:ERJI ...

已知一棵二叉树如下图所示:分别写出该二叉树的先序遍历结果、中序遍历...
答:先序遍历 先根后左再右 ABCDEF 后序遍历 先左右后再根 CBFEDA 烦请采纳 谢谢

某二叉树的前根次序列遍历结果为stuwv,中序遍历为uwtvs,则该二叉树的...
答:对于先序遍历stuwv, 和中序遍历uwtvs可以这么分析:规则:1)先序遍历确定父节点 2)中序遍历确定左右子树 分析过程:1、由前序遍历可知s为树的根 s tuwv 2、结合中序遍历可知:tuwv为s左子树的先序遍历, uwtv为s左子树的中序遍历 3、同理判断t为左子树的根,uw为t的左子树, v为t的右...

...树的前序遍历的结果序列是abdgcehif,中序遍历结果是gdbaheicf,试写 ...
答:根据前序遍历和中序遍历,可以得到该二叉树为 所以后序遍历为gdbhiefca。这是我得出的结果,应该没错吧。

已知二叉树的先序遍历序列为ABCDEFG,中序遍历序列为AHIFCJGDEBD,其后...
答:,预计C会有左子树,也应该有右子树.二叉树示意图: A \ B / C / \ F D / / \ H G E \ / I J后序遍历序列 I H F J G E D C B A// C语言测试代码// 测试结果:// 创建二叉树,输入先序扩展序列(#表示空结点):// A#BCFH#...

已知二叉树的前序和中序结果,求后序
答:在前序中找到根节点,然后在中序中找到对应的节点,然后分成左右子树进行递归处理。代码及示例运行结果如下:include <stdio.h> include <string.h> bool PostOrder0(char *preBegin, char *preEnd, char *inBegin, char *inEnd, char *post){ if (!preBegin || !inBegin) return false;if ...

已知二叉树前序遍历 abcdefghijk,中序遍历cedfbahgkjl,求后序遍历
答:g / / \ c h i \ / d j / \ / e f k 所以后序遍历是 efdcbhkjiga

设一棵二叉树的中序遍历结果为DBEAFC,前序遍历的结果为ABDECF,则后序遍...
答:综述:依据前序遍历序列可确定根结点为A;再依据中序遍历序列可知其左子树由DBE构成,右子树为FC;又由左子树的前序遍历序列可知其根结点为B,由中序遍历序列可知其左子树为D,右子树由E构成。同理推算FC的排列顺序,在草稿纸上画出树的结构,得出答案为:DEBFCA。编程:编程是编定程序的中文简称,...

已知二叉树的前序遍历和中序遍历,怎样得到它的后序
答:已知二叉树的前序遍历和中序遍历 步骤一:从前序遍历序列中找到根结点(首结点)步骤二:然后从中序序列中找到该节点的左右两个中序序列,取出该结点放置到两序列之后。步骤三:针对划分后的两个中序序列重复步骤一和步骤二,直到中序序列无法再次划分。此时得到的序列即为后序序列。(方法二)