首页 > 试题广场 >

某二叉树结点的中序序列为BDAECF,后序序列为DBEFCA

[单选题]
某二叉树结点的中序序列为BDAECF,后序序列为DBEFCA,则该二叉树对应的森林包括()棵树
  • 1
  • 2
  • 3
  • 4
二叉树转换为树和森林。若二叉树非空,则二叉树根及其左子树为第一棵二叉树形式,二叉树根的右子树又可以看做一个由森林转换后的二叉树,应用同样的方法,直到最后产生一棵没有右子树的二叉树为止,这样就得到一个森林。为了进一步得到树,可用树的 二叉链表 表示逆方法,即结点的右子树的根、右子树的右子树的根......找出原本是同一个双亲的兄弟。二叉树转换为树或森林是唯一的。
发表于 2016-07-12 09:38:50 回复(0)
3颗树,如图。二叉树到森林的转换是:二叉树中节点的左孩子是森林中该节点的孩子,右孩子是森林中该节点的兄弟。
发表于 2016-09-09 21:27:40 回复(2)
三序中知道其中两个就可以推出第三个,但是前提是我们要知道中序。
每个序都有隐藏信息:
前序:序列的第一个为根结点
后序:序列的最后一个为根结点
中序:通过前序或者后序知道根结点后可推出左右子树

根据题目: 
中序序列为BDAECF
后序序列为DBEFCA
1:由后序序列推出 A为根结点
2:将A代入中序中得 (BD)A(ECF),BD为左子树,ECF为右子树
3:对于 BD:
        中序:BD
        后序:DB
        推出:(空)B(D)
4:对于 ECF:
        中序:ECF
        后序:EFC
        推出:(E)C(F)

因此可以推出上面有人分析的图
最后二叉树转化为森林 上面也有人讲了,我不多说了。

编辑于 2021-01-14 16:21:53 回复(1)
选C
发表于 2015-01-07 02:39:32 回复(3)
    又二叉树的中序遍历和后序遍历可以构建该二叉树,图见楼上。
    从树到二叉树的转化方法一般是“兄弟孩子法”,也就是把树结点的第一个孩子变为左孩子结点,兄弟结点变为右孩子节点。由此得到的二叉树,根节点必无右孩子。所以对于森林到二叉树树的转化,是依次把森林的每棵树转化为二叉树,把最后一颗转化后的二叉树的根节点作为上一颗二叉树的右孩子节点,这样把两颗二叉树接成一颗二叉树。然后依次向前连接,直到只有一颗二叉树。反过来,构建后的二叉树的右下节点都是由对应的森林里不同的树相连而成的,可以想象二叉往树右侧的先序遍历依次经过A-C-F到达树的底端,这三个结点在对应的森林中都必定分属不同的树。所以一共有三棵树。
发表于 2015-08-02 19:46:17 回复(0)
二叉树转化为深林的前提,先判断根结点有没有右孩子,有就可以转化为深林,没有右孩子能转化为一颗树。
从根结点开始,如果有右子树,将右子树与根结点的连线删除,在查看分离后的二叉树,若有右孩子,则连线删除,递归这个过程,直到所有的右孩子连线都删除为止,得到分离的二叉树。分离二叉树转化为树,得到的树的个数即为森林包括的树的数量。 那么二叉树如何转化为树?
二叉树转化为树的过程:
1.加线。若某个结点的左孩子结点存在,将左孩子的右孩子结点作为此结点的孩子,即将该节点与右孩子结点用连线连接起来。
2.去线。删除原二叉树中所有结点与其右孩子结点的连线。得到的便是树。
发表于 2016-03-17 17:11:25 回复(0)
根节点开始,左孩子,右兄弟。
发表于 2022-04-29 14:59:16 回复(0)
答案是3个,图中的1,2,3分别代表一个树。
编辑于 2016-09-09 23:48:39 回复(0)
将二叉树转化为森林,要注意复习
发表于 2016-05-07 20:30:36 回复(0)
画出二叉树,从根结点开始,往右子树走,遇到右子树就断开,最终断开的个数就是题目要求的
发表于 2019-07-15 20:15:16 回复(0)

二叉树转换为森林:

假如一棵二叉树的根节点有右孩子,则这棵二叉树能够转换为森林,否则将转换为一棵树。

1.从根节点开始,若右孩子存在,则把与右孩子结点的连线删除。再查看分离后的二叉树,若其根节点的右孩子存在,则连线删除…。直到所有这些根节点与右孩子的连线都删除为止。

2.将每棵分离后的二叉树转换为树。

如下图所示:

发表于 2018-08-31 21:39:38 回复(0)
先由中序和后序遍历结果得到二叉树,然后二叉树转森林,看森林中有几颗树
发表于 2017-07-21 16:30:27 回复(0)
只要一直断右边的连线就好
发表于 2017-04-27 21:55:28 回复(0)