某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为? 10
某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为ABCDE。
中序遍历:访问根节点在左右子树之间,即左—根—右。后序遍历:访问根结点在源左右子树之后,即左—右—根。由定义可以知道:
后序遍历中最后一个就是树根结点,即A结点。
中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为CB。去掉根节点和左子树节点,右子数节点为DE。
在二叉树中,求前序遍历,先根后左再右,即首先访问根结点,然后遍历左子树,最后访问遍历右子树。则该二叉树的前序遍历是ABCDE。
扩展资料:
在前缀(prefix)表达式中,操作符位于操作数之前。在因此,在前缀表达式中不必采用括号或优先级。从左到右或从右到左扫描表达式并采用操作数栈,可以很容易确定操作数和操作符的关系。
若在扫描中遇到一个操作数,把它压入堆栈,若遇到一个操作符,则将其与栈顶的操作数相匹配。把这些操作数推出栈,由操作符执行相应的计算,并将所得结果作为操作数压入堆栈。
该题答案选择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”节点)、遍历左侧子节点和右侧子节点。这三个步骤的顺序也是不同遍历方法之间的根本区别。
A
/ \
B D
/ \
C E
所以前序遍历为ABCDE
A
/ \
B D
/ \
C E
得到前序是:ABCDE