已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是EBCDAFHIGJ, 试画出这棵二叉树。

作者&投稿:挚仲 (若有异议请与网页底部的电邮联系)
设一棵二叉树的中序遍历序列为BDCA,后序遍历序列为DBAC,则这棵二叉树的前序序列~

这个先根据后序遍历确定根节点为C。再根据中序遍历得到根节点的右孩子为A。然后根据后序遍历确定,B是根节点的左孩子,D是B的孩子。再根据中序遍历,得到D是B的右孩子。根据这个画出二叉树。
前序遍历结果是:CBDA。

扩展资料:1、前序遍历的规则:访问根节点、前序遍历左子树、前序遍历右子树。
这里需要注意:在完成第2,3步的时候,也是要按照前序遍历二叉树的规则完成。
前序遍历的输出结果:ABDECF。
2、中序遍历:中序遍历可以记为左根右,也就是说在二叉树的遍历过程中,首先要遍历二叉树的左子树,接着遍历根节点,最后遍历右子树。同样,在二叉树为空的时候,结束返回。
中序遍历的规则:中序遍历左子树、访问根节点、中序遍历右子树
注意:在完成第1,3步的时候,要按照中序遍历的规则来完成。
中序遍历的输出结果:DBEAFC
3、后序遍历:后序遍历可以记为左右根,也就是说在二叉树的遍历过程中,首先按照后序遍历的规则遍历左子树,接着按照后序遍历的规则遍历右子树,最后访问根节点。在二叉树为空的时候,结束返回。
后序遍历二叉树的规则:后序遍历左子树、后序遍历右子树、访问根节点
注意:在完成1,2步的时候,依然要按照后序遍历的规则来完成。
后序遍历的输出顺序:DEBFCA。

A
/ \
B F
/ \ \
E C G
\ / \
D H J
\
I

前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回。

因此,A是根结点,B是A的左子树,F是A的右子树。E是B的左子树,C是B的右子树,D是C的右子树。G是F的右子树。H是G的左子树,J是G的右子树。I是H的左子树。

扩展资料:

在前缀和后缀表达式中都不必采用括号或优先级。从左到右或从右到左扫描表达式并采用操作数栈,可以很容易确定操作数和操作符的关系。

若在扫描中遇到一个操作数,把它压入堆栈,若遇到一个操作符,则将其与栈顶的操作数相匹配。把这些操作数推出栈,由操作符执行相应的计算,并将所得结果作为操作数压入堆栈。

当t的高度为n时(右斜二叉树的情况),通过观察其前序、中序和后序遍历时所使用的递归栈空间即可得到空间复杂性均为O (n),时间复杂性为O(n)。



前序遍历又称先根遍历,就是按照根,左子树,右子树的顺序,中序遍历就是左子树,根,右子树的顺序,那么按照你这个题:这个二叉树的根应该为A,左子树为EBCD,右子树为FHIGJ,你可以按照这个画出这个二叉树,因为没有特别的要求,所以你可以随意安排左右子树中结点的顺序.

左一定优先于右 ,所以根的位置有三种。
根 左 右、左 根 右、左 右 根。
分别称为先序遍历、中序遍历、后续遍历,子树也一样,到一个子树就遍历一次,按照遍历顺序写下去就好,尤其注意根特殊对待(只有一个所以只写一个)。
后续遍历是:cbefda

______A
__B_______ F
E__C___________G
_____D______H______J
_______________I

_是为了增加空格

已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是EBCDAF...
答:---=---A--- ---B--- ---F--- E---C--- ---G--- ---D-- -H---J--- --- --I--- 后序 EDCBIHJGFA 刚学 应该对吧

数据结构关于遍历二叉树的一道题目 急急急 在线等啊
答:32.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是()A.CABDEFG B.ABCDEFG C.DACEFBG D.ADCFEG 33.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为(A )。A.CBEFDA B.FEDCBA C.CBEDFA D.不定 34.已知某二叉树的后序遍历序列是...

.已知一颗二叉树的前序遍历为abdheicfgj,中序遍历为hdbeiafcgj,求出...
答:根据前序遍历序列abdheicfgj,得知a是根节点.根据中序遍历序列hdbeiafcgj,得知hdbei是根节点a的左子树,fcgj是根节点a的右子树,画出二叉树: a / \ b c / \ / \ d e f g / \ \ h i j后序遍历序列是 h d i e b f j g c a#in...

已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉...
答:【答案】:B B。【解析】二叉树的遍历有3种:前序、中序和后序。后序遍历首先遍历左子树或左子结点,然后遍历右子树或右子结点,最后访问根结点;中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点;后序遍历首先访问根结点,然后遍历左子树或左子结点,最后遍历右子树或...

已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历和层次...
答:前面有字母L,后面没有。题目有错误 把后序遍历中的L改成B,应该是这个样子的吧前序遍历结果为:ABDEHCFIG 层次遍历结果为:ABCDEFGHI

数据结构: 已知一棵二叉树的先根遍历的结果为:a,b,d,g,c,e,f,中根...
答:数据结构:已知一棵二叉树的先根遍历的结果为:a,b,d,g,c,e,f,中根遍历结果为:d,g,b,a,e,c,f。(1)试构造这棵二叉树。(2)写出它的后根遍历结果。... 数据结构: 已知一棵二叉树的先根遍历的结果为:a,b,d,g,c,e,f,中根遍历结果为:d,g,b,a,e,c,f。(1)试构造这棵二叉树。(2)写出它...

已知二叉排序树(结点值大小按字母排序)的前序遍历序列为EBACDFHG...
答:你不是已经知道是一棵二叉排序树了吗 就拿后面的结点跟跟结点比较大小 题目说是按照字母大小排序 则得E是比BACD大 所以BACD是左子树 FHG是右子树 又因为H>F所以画在F右边 G<H所以画在H 左边

C++中如果知道了二叉树的前序和中序遍历,怎么知道后序遍历?有点急~
答:知道前序遍历就相当于知道了这棵二叉树的根节点(第一个节点便是)而知道中序遍历 又 知道这棵树的根节点 就能知道 这棵树的左子树和右子树的所有节点(在中序遍历中找出根节点,根节点左边的所有节点是左子树,右边的所有节点是右子树)。再分别把左子树和右子树当做一颗完整的树,按照前面的步骤...

已知二叉树的先序遍历序列为ABCDEFG,中序遍历序列为AHIFCJGDEBD,其后...
答:先序遍历序列为ABCFHIDGJE, 中序遍历序列为AHIFCJGDEB[先序]第1个字符是A,这是根节点,而[中序]第1个字符也是A,表明根节点A没有左子树,而只有右子树.[先序]第2个字符是B,表明B紧跟A的后面,是A的右分支,而[中序]的B排在末尾,表明B只有左子树,而没有右子树.[先序]第3个字符是C,表明C...

已知某二叉树先序遍历序列为ABCDEFH,中序遍历序列是BDCEAHF
答:已知先序和中序,求后序 我们来举个简单的例子,先序序列为:ABDECF,中序序列为:DBEAFC。算法思想:先序遍历树的规则为中左右,可以看到先序遍历序列的第一个元素必为树的根节点,比如上例中的A就为根节点。再看中序遍历为:左中右,再根据根节点A,可知左子树包含元素为:DBE,右子树包含元素...