某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为?

A:CBEDA
B:EDCBA
C:CBADE
D:ABCDE

某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为ABCDE。

中序遍历:访问根节点在左右子树之间,即左—根—右。后序遍历:访问根结点在源左右子树之后,即左—右—根。由定义可以知道:

后序遍历中最后一个就是树根结点,即A结点。

中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为CB。去掉根节点和左子树节点,右子数节点为DE。

在二叉树中,求前序遍历,先根后左再右,即首先访问根结点,然后遍历左子树,最后访问遍历右子树。则该二叉树的前序遍历是ABCDE。

扩展资料:

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-10

该题答案选择D选项。

中序遍历:访问根节点在左右子树之间,即左—根—右。来后序遍历:访问根结点在源左右子树之后,即左—右—根。由定义可以知道:

1、后序遍历中最百后一个就是树根结点,即A结点。

2、在中序遍历中,根结点左边的是左儿子集,右边的是右儿子集。所以二叉树应该为度A、/\、BD、/\、CE,所以前序遍历为ABCDE

后序遍历表明A一定是根节点,那么由中序遍历得CB、DE分别为左、右子树中序遍历,同时得到CB、ED分别为左、右子树后序遍历。

同理,我们就可以得到如图所示得树。则它的前序遍历即为A选项。

扩展资料:

二叉树性质

1.有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

若I为结点编号则 如果I>1,则其父结点的编号为I/2;

如果2*I<=N,则其左孩子(即左子树的根结点)的编号为2*I;若2*I>N,则无左孩子;

如果2*I+1<=N,则其右孩子的结点编号为2*I+1;若2*I+1>N,则无右孩子。

2.给定N个节点,能构成h(N)种不同的二叉树。

h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。

3.设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i

4.对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;

与通常具有标准遍历(通常按线性顺序)的线性数据结构(如链表、一维数组)不同,树结构可以用许多不同的方式进行遍历。

从二叉树的根节点开始,节点的遍历分为三个主要步骤:在当前节点上操作(称为“access”节点)、遍历左侧子节点和右侧子节点。这三个步骤的顺序也是不同遍历方法之间的根本区别。

本回答被网友采纳
第2个回答  2019-09-12

该题答案选择D选项。后序遍历表明A一定是根节点,那么由中序遍历得CB、DE分别为左、右子树中序遍历,同时得到CB、ED分别为左、右子树后序遍历。同理,我们就可以得到如图所示得树。则它的前序遍历即为A选项。

扩展资料:

与那些基本上都有标准遍历方式(通常是按线性顺序)的线性数据结构(如链表、一维数组)所不同的是,树结构有多种不同的遍历方式。从二叉树的根节点出发,节点的遍历分为三个主要步骤:对当前节点进行操作(称为“访问”节点)、遍历左边子节点、遍历右边子节点。这三个步骤的先后顺序也是不同遍历方式的根本区别。

本回答被网友采纳
第3个回答  推荐于2018-03-22
中序遍历:访问根节点在左右子树之间,即左—根—右。后序遍历:访问根结点在左右子树之后,即左—右—根。 由定义可以知道: 1、后序遍历中最后一个就是树根结点,即A结点。 2、在中序遍历中,根结点左边的是左儿子集,右边的是右儿子集。所以二叉树应该为
A
/ \
B D
/ \
C E
所以前序遍历为ABCDE本回答被网友采纳
第4个回答  2015-03-23
根据中序和后序,得出二叉树如下:
A
/ \
B D
/ \
C E
得到前序是:ABCDE本回答被网友采纳