已知二叉树的前序和中序,构造该二叉树的方法是什么

作者&投稿:邬庆 (若有异议请与网页底部的电邮联系)
~ 以下面的例题为例进行讲解:
已知一棵二叉树的先序遍历序列和中序遍历序列分别是ABDCEF、BDAECF,求二叉树及后序遍历序列。
分析:先序遍历序列的第一个字符为根结点。对于中序遍历,根结点在中序遍历序列的中间,左边部分是根结点的左子树的中序遍历序列,右边部分是根结点的右子树的中序遍历序列。
先序:ABDCEF
-->
A
BD
CEF
中序:BDAECF
-->
BD
A
ECF
得出结论:A是树根,A有左子树和右子树,左子树有BD结点,右子树有CEF结点。
先序:BD
-->
B
D
中序:BD
-->
B
D
得出结论:B是左子树的根结点,B无左子树,有右子树(只有D结点)。
先序:CEF
-->
C
E
F
中序:ECF
-->
E
C
F
得出结论:C是右子树的根结点,C有左子树(只有E结点),有右子树(只有F结点)。
还原二叉树为:
A
B
C
D
E
F
后序遍历序列:DBEFCA

构造一棵二叉树,并分别输出其先序遍历、中序遍历和后序遍历的结果
答:"<<endl;CreateBiTree(T);cout<<"二叉树的先序遍历为:"<<endl;preBiTree(T);cout<<endl;cout<<"二叉树的中序遍历为:"<<endl;InBiTree(T);cout<<endl;cout<<"二叉树的后序遍历为:"<<endl;PostBiTree(T);cout<<endl;cout<<"二叉树的深度为:"<<endl;cout<<Depth(T)<<endl;} ...

有一棵二叉树的先序和中序遍历分别如下,画出该二叉树(...
答:也就是下面这棵树 2 / \ 4 5 对于这棵树在进行中序遍历 我们应先遍历她的左子树 他只有一个根节点4,左右子树都为空 哪么遍历这个只有一个根节点的二叉树 先访问她的左子树,为空 返回 访问该树的根节点4 在访问右子树也为空 此时,这棵树已经被完全的遍历了 我们需要返回上一层也...

...中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是什么...
答:已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA。前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点。中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为DBGE。去掉根节点和左子树节点,右子数节点为CHF。前序遍历的第二个...

已知一颗二叉树的前序序列和中序序列如下,画出这颗二叉树
答:---a ---b ---c ---d---g ---e---h ---f---

二叉树已知某二叉树的先序序列和中序序列分别?
答:ABC,如果是先序,A是根,B是左叶,C是右叶;ABC如果是中序,A是左叶,B是根,C是右叶。先序序列ABDEFCGHIJK,说明A是这个树的总根;中序EFDBCGAJIKH,说明E是最底层最左边的叶子,(EFDBCG)是左枝,(JIKH)是右枝。据此,我们可以把这个二叉树,第一次分层为:先序A(BDEFCG)(HIJK)中序(EFD...

11.已知一颗二叉树如下图所示,试分别写出按中序、先序和后序遍历时所...
答:先序 a i d h b x p f r 中序 d i a x b p h f r 后序 d i x p h r f h a

已知一棵二叉树的中根序列和先根序列分别为ECBHFDJIGA和ABCEDFHGIJ...
答:先根序列为CE),右边为右子树HFDJIG(先根序列为DFHGIJ) 所以有 ___A___/___\___B___/__\___EC__HFDJIG__问题再次分解子子树,循环上述过程直到分解到最后一个元素。

二叉树的三种遍历,先,中,后遍历
答:二叉树的遍历分为以下三种:先序遍历:遍历顺序规则为【根左右】中序遍历:遍历顺序规则为【左根右】后序遍历:遍历顺序规则为【左右根】什么是【根左右】?就是先遍历根,再遍历左孩子,最后遍历右孩子;举个例子,看下图(图从网上找的):先序遍历:ABCDEFGHK 中序遍历:BDCAEHGKF 后序遍历:DCB...

二叉树,已知前序为ABCD,中序序列为DCBA,则后续序列为?
答:这题的二叉树如下:A / B / C / D 所以本题的后序序列为DCBA,没有问题

已知一棵二叉树的前序遍历和后序遍历,可以构造出一棵二叉树吗?
答:普通二叉树必须是这三者之一:前序和中序、后序和中序、层次序和中序才能还原出二叉树