数据结构中,森林转换为二叉树的结果是否唯一

2020-12-30 16:49:41 字数 2950 阅读 3410

1楼:鱼厌河

我觉得由于森林无法确定谁是第一颗树,所以不唯一

把一棵树转换为二叉树后,这棵树的形态是唯一的吗

2楼:木叶之窗

树到二叉树的转换

除了根节点的兄弟结点之间连线,然后去掉初长子之外的连线(得出来的树没有右子树)

森林转化为二叉树的步骤

(1)先将森林中的每棵树变为二叉树

(2)再将各二叉树的根节点视为兄弟从左至右连在一起,最后调整一下位置,就形成了一颗二叉树。(有左子树又有右子树)

3楼:谏许阿微

应该问的是这棵二叉树形态是唯一的吧,这个只要转换规则一致,结果自然唯一

数据结构中,怎么样把森林转化成二叉树

4楼:叶子离去是纪念

步骤1:先将各树按照左孩子右兄弟的原则转化成二叉树

步骤2:然后将各二叉树通过根的右指针相连(即:按森林图形中树的先后次序,依次将后边一棵二叉树的根作为前边一棵二叉树根结点的右子树)

下面给你举个例子:

数据结构,两颗树组成的森林转换成二叉树,如果两棵树本来就是二叉树,是直接把根节点连起来还是按照书上

5楼:乌石

数据结构,两颗树组成的森林转换成二叉树,如果两棵树本来就是二叉树,是直接把根节点连起来还是按照书上的方法,把每个树转换成二叉树,在把第一个树的根节点的右指针指向第二个树的右指针?

【回答】:应先把每个树转换成二叉树,在把第一个树的根节点的右指针指向第二个树的根。你这个图中画的都不对正确的应是:

..... a

/ ...... \

b........ d

.\........ /

....c.... e

............. \

..................f

(点请无视之,不知道,最近空格不知为何不起作用了)

从概念上讲,树,森林和二叉树是三种不同的数据结构,将树,森林转化为二叉树的基本目的是什么, 50

6楼:匿名用户

这三种结构的特点用一句话概括的话就是:

树,只有1个根节点

森林,有》=2个根节点,可以理解为由多棵树组成

二叉树,作为一种特殊的树,在满足只有1个根节点的同时,任意节点的儿子数=<2

树和森林的结构与二叉树相比,要求更少,也可以说是更抽象,因此适用于更多的场合。

二叉树则是根据目前计算机所采用的二进制存储机制所设计的,现在的计算机基本都已经集成了各种数制的表示,加上图形ui,使得很多人已经对二进制串及其特点不敏感了,但是最底层的处理机制依然与早期的计算机相似,基本全是对0、1串做处理,逻辑判断也就是true或false,具体表现还是0、1,这种情况下二叉树就是最简易、最直观的。

大多数使用二叉树的地方也可以使用三叉或四叉之类的结构来替换,但是在具体实现上,由于机器处理能力的特性,还是要转换为二叉结构,例如针对三叉的判断,a、b、c三种子情况,计算机还是要按照判断a与非a、再判断b与非b这种二叉逻辑来处理。

所谓数据结构只是一种存储、组织数据的一种方式,无论哪种数据结构都是以这为出发点设计的,最简单高效、容易理解的数据结构就是最好的。

7楼:匿名用户

二叉树只能有两个子树,树就不一定

数据结构的一道题,二叉树和森林的转化

8楼:匿名用户

题目看清楚啦,问的是森林中的父节点不是二叉树中的父节点

9楼:笑来到

兄弟是两个节点,你这同一个节点,没法构成兄弟关系啊

从概念上讲,树、森林和二叉树是三种不同的数据结构,将树、森林转化为二叉树的基本目的是什么

10楼:

1、方便编程中的调用

2、二叉树中每个结点最多有两个子树,普通的树没有限制

1、从概念上讲,树、森林和二叉树是三种不同的数据结构,将树、森林转化为二叉树的基本目的是什么?

11楼:

1、方便编程中的调用

2、二叉树中每个结点最多有两个子树,普通的树没有限制

数据结构:设f是一个森林,b是由f变换得到的二叉树。f中有n个非终端结点,则b中右指针域为空的结点为( )

12楼:水瓶一头老母猪

选c,n+2。

解题思路:

设终端结点数为f,总结点数 f + n。每个结点有两个指针,总指针数 2(f + n)。

二叉树b除去根结点,都是某个结点的孩子, 也就是其余每个结点都有指针指向, 占用指针数为 f + n - 1。

剩余空指针数为 2(f + n)- (f + n - 1)= f + n + 1 个,f 个终端结点没有孩子, 所以空的左指针域数为f 个;二叉树b 中右指针域为空的结点有 ( f + n + 1 ) - f = n + 1。

13楼:匿名用户

c.n+1

森林转换为二叉树,遵循"左儿子右兄弟"的说法.

举个例子.树:根节点有三个儿子a,b,c.

那么转换为二叉树后,根节点只有一个儿子a,然后a的兄弟b成为a的"儿子"(或者可以说是右指针域),c成为b的右指针域,此时c已经没有兄弟了,所以到此的一个右指针域为空.(你可以画图体会一下.)

题目中说f有n个非终端节点,所以转换为二叉树后所有的空的右指针域(right)就是n个.

根节点没有兄弟,所以该右指针域也为空.(注:这里根节点也是一个有指针域.上文中根节点属于非终端节点,那里它所指向的右指针域不是它本身而是它的最右边的儿子.)

所以综上,二叉树中右指针域为空的节点有(n+1)个.

楼主,这个我也是初学,有些语言不标准之处见谅.

如图,数据结构问题,这个二叉树怎么转化为森林

1楼 旧同桌的你 记住左孩子右兄弟,a的左子树b是它的一个节点,b的右子树c是b的兄弟,同时也是a的一个节点,所以在a这棵树上有b和c两个节点 a的右子树有d,d的右子树有g,所以a d g三者互为兄弟,也就是有a d g这三棵树 d有一个左子树e,e有一个右子树f,所以e和f为d树下的两个节点 如...

二叉树转换成森林的过程是什么,把二叉树转换为为森林 如图

1楼 北京理工大学出版社 二叉树转换成森林的方法是 1 抹线 将二叉树中的根结点与其右孩子间的连线,及沿右分支搜索到的所有右孩子间的连线全部抹掉,使之变成孤立的二叉树,如图1所示。 2 还原 将孤立的二叉树用孩子兄弟法还原成树,如图1所示。树和森林都可以转换为二叉树,二者的不同是 树转换成的二叉树,...