2. 已知二叉树的先序遍历序列是EABDCFHGIKJ,中序遍历序列是ABCDEFGHIJK,请构造二叉树,并写出其层次遍
首先,前序序列是以-(根节点)(左子树)(右子树)来排列的,所以在前序树最左边的节点一定是树的根节点,这样我们就可以确定E是根节点。
再来看中序序列,我们知道了E是根节点,便可以从中序序列知道(ABCD)(FGHIJK)分别是E节点的左右子树,再通过前序树得到(BADC)(FHGIKJ)的根节点分别是B与F,以此类推可求得整个树的结构。
大概给出第一二步解法,
1)先序序列 【E】BADCFHGIKJ
中序序列 ABCD【E】FGHIJK
2)先序序列 【E】【B】ADCFHGIKJ
中序序列 A【B】CD【E】FGHIJK
说明:中序序列可以通过先序序列找出树根,【】标记为树根
后序序列为 ACDBGJKIHFE
层次遍历 EAFBHDGICKJ
后序遍历 CDBAGJKIHFE
画法:根E,E左A右F,A右B,B右D,D左C,F右H,H左G右I,I右K,K左J
先看先序,其第一个为树的根,先序遍历是先根再左子树最后右子树,第一个肯定是树的根,先画A,A再中序遍历中左右都有,说明A有左子树也有右子树。
先看左孩子一边,先序下一个为B,故它为根的左孩子,且中序中A在B的前边,所以A为B的左孩子,再看先序中的D,它就是B的右孩子,且中序中C在D的前面,所以C为D的左孩子,根的左枝完事。右边同理。
扩展资料:
除了先序遍历、中序遍历、后序遍历外,还可以对二叉树进行层序遍历。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的结点的过程就是层序遍历。
参考资料来源:百度百科-二叉树遍历
层次遍历 EAFBHDGICKJ
后序遍历 CDBAGJKIHFE
画法:
根E,E左A右F,A右B,B右D,D左C,F右H,H左G右I,I右K,K左J
二叉树你画吧。。层次遍历:eafbhdgickj
后序遍历:cdbagijkhfe
希望对你有帮助
闳真奋乃: 层次遍历 EAFBHDGICKJ 后序遍历 CDBAGJKIHFE 画法: 根E,E左A右F,A右B,B右D,D左C,F右H,H左G右I,I右K,K左J
松北区13378747382: 已知二叉树的前序和中序,构造该二叉树的方法是什么 - ?
闳真奋乃: 以下面的例题为例进行讲解: 已知一棵二叉树的先序遍历序列和中序遍历序列分别是ABDCEF、BDAECF,求二叉树及后序遍历序列. 分析:先序遍历序列的第一个字符为根结点.对于中序遍历,根结点在中序遍历序列的中间,左边部分是根...
松北区13378747382: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是什么? - ?
闳真奋乃: 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历是DGEBHFCA. 前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点.中序遍历的根节点前面的节点均为左子树的节点,所以左子树上...
松北区13378747382: 已知二叉树的前序遍历和中序遍历,怎样得到它的后序 - ?
闳真奋乃: 1. 已知二叉树的前序遍历和中序遍历就可以知道二叉树的形状,然后即可得到它的后序序列.(方法一) 2. 已知二叉树的前序遍历和中序遍历 步骤一:从前序遍历序列中找到根结点(首结点) 步骤二:然后从中序序列中找到该节点的左右两个中序序列,取出该结点放置到两序列之后. 步骤三:针对划分后的两个中序序列重复步骤一和步骤二,直到中序序列无法再次划分.此时得到的序列即为后序序列.(方法二)
松北区13378747382: C++中二叉树的前序(后序、中序)遍历分别是什么意思?相应的树图怎么看? - ?
闳真奋乃: 二叉树的遍历是指按照一定次序访问树中所有结点,并且每个节点仅被访问一次的过程. 1、先序遍历(前序) (1)访问根节点; (2)先序遍历左子树; (3)先序遍历右子树. 2、中序遍历 (1)中序遍历左子树; (2)访问根节点; (3...
松北区13378747382: 41、已知一棵二叉树结点的先序遍历序列为:E,C,B,D,F,A, 中序遍历序...?
闳真奋乃: 分析过程: 以下面的例题为例进行讲解: 已知一棵二叉树的先序遍历序列和中序遍历序列分别是abdgcefh、dgbaechf,求二叉树及后序遍历序列. 分析:先序遍历序列的第一个字符为根结点.对于中序遍历,根结点在中序遍历序列的中间,左...
松北区13378747382: 已知一棵二叉树的先序遍历序列为ABCDEFGHIJ,中序遍历序列为CBDEAFHIGJ. - ?
闳真奋乃: 1 答案不唯一 2 e位置错误