如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()?

作者&投稿:季娅 (若有异议请与网页底部的电邮联系)
一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( B )~

通过前序遍历,可以得到根是A。
看A答案,A的左边是C,所以A左子树只有C,因为中序是先左子树再根再右子树,但是前序B在C前面,所以该中序错误。
看B答案,该二叉树可以是
A
\
B
\
C
...
所有结点只有右子树,这样前序是ABCDEFG 和中序是ABCDEFG,存在这样的二叉树,满足答案。
看C答案,跟A的分析一样。
看D答案,没有B结点

1. 先序ABDFCEG,则A为根
2. 中序DFBACEG,则A左边的DFB为左子树,A右边的CEG为右子树
3. 左子树先序BDF,中序DFB
3.1. 先序BDF,则B为根
3.2. 中序DFB,则B左边的DF为左子树,D右边没有右子树
3.3. 左子树先序DF,中序DF
3.3.1. 先序DF,则D为根
3.3.2. 中序DF,则D左边没有左子树,D右边的F为右子树
3.3.3. 后序为FD
3.4. 后序为FDB
4. 右子树先序CEG,中序CEG
4.1. 先序CEG,则C为根
4.2. 中序CEG,则C左边没有左子树,C右边的EG为右子树
4.3. 右子树先序EG,中序EG
4.3.1. 先序EG,则E为根
4.3.2. 中序EG,则E左边没有左子树,E右边的G为右子树
4.3.3. 后序GE
4.4. 后序GEC
5. 后序FEBGECA

答案B。

解决的思路一般有两种:

1、将先序序列和各个中序序列结合起来,联合起来还原二叉树,如果可以还原,就是正确的;将先序序列看成是一个进栈序列,如果通过栈后能够得到的就是合法的中序序列,否则就不是。

2、答案1,abc进栈不可能得到cab,不可能得到,答案2,abcdefg进栈是可以得到abcdefg的,结果合法;答案3,abcd等进栈后,先出栈的是d,前面进栈的abc只能是按cba次序出来,结果是acb,不可能得到,答案4,缺少一个,无法断定。





应该选D。

两个答案?B+D

如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()?
答:答案B。解决的思路一般有两种:1、将先序序列和各个中序序列结合起来,联合起来还原二叉树,如果可以还原,就是正确的;将先序序列看成是一个进栈序列,如果通过栈后能够得到的就是合法的中序序列,否则就不是。2、答案1,abc进栈不可能得到cab,不可能得到,答案2,abcdefg进栈是可以得到abcdefg的...

如果有一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是?
答:B、D、C、答案出现矛盾

已知二叉树的中序遍历是DBEAFC.前序遍历是ABDECF.后序遍历怎么算?
答:1、首先声明一个静态二叉树节点类,通过该类对象,可以构建一棵二叉树结构。2、然后实现算法,通过递归方式后序遍历一棵二叉树。3、编写本地测试方法,测试递归方式后序遍历二叉树,输出符合预期,本地测试通过。4、实现算法,通过迭代方式后序遍历一棵二叉树。5、最后编写本地测试方法,测试迭代方式后序...

设一颗二叉树的中序遍历结果是DBEAFC,前序遍历结果是ABDECF,则后序便利...
答:B FC D E 下面再看FC两个节点,他们在前序遍历结果中的结果是CF,所以C是这两个节点中的根节点,再根据他们在中序遍历结果中的顺序FC,则F将他们本身划分为左子树(此时为空)和右子树C,则二叉树示意图如下:A B C D E 空 F ...

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

某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为?
答:某二叉树的中序遍历为CBADE,后序遍历序列为CBEDA,则前序遍历序列为ABCDE。中序遍历:访问根节点在左右子树之间,即左—根—右。后序遍历:访问根结点在源左右子树之后,即左—右—根。由定义可以知道:后序遍历中最后一个就是树根结点,即A结点。中序遍历的根节点前面的节点均为左子树的节点,所以...

设一棵二叉树的中序遍历结果为DBEAFC,前序遍历的结果为ABDECF,则后序遍...
答:综述:依据前序遍历序列可确定根结点为A;再依据中序遍历序列可知其左子树由DBE构成,右子树为FC;又由左子树的前序遍历序列可知其根结点为B,由中序遍历序列可知其左子树为D,右子树由E构成。同理推算FC的排列顺序,在草稿纸上画出树的结构,得出答案为:DEBFCA。编程:编程是编定程序的中文简称,...

某二叉树的中序遍历为bdaec,后序dbeca,则前序遍历为
答:首先,可以知道a为根,bd左子树,ec右子树。bd子树中,b为根,则d为b右子树。ec子树中,c为根,则e为c左子树。所以,前序:abdce

已知一棵二叉树的先序遍历序列为: A B C D E F G H I,中序遍历序列为...
答:回答:A / \ B D \ / \ C E F / \ G I \ H

一颗二叉树前序遍历和中序遍历分别是ABDEGCFH、DBGEACHF,则此后序遍...
答:前序遍历的第一个节点为根节点,由前序遍历可知,A为根节点。中序遍历的根节点前面的节点均为左子树的节点,所以左子树上的节点为DBGE。去掉根节点和左子树节点,右子数节点为CHF。前序遍历的第二个节点为B,由2知B为左子树节点,所以B为左子树的根节点。在二叉树中,求后序遍历,先左后右再根...