初学数据结构,问个二叉树的问题

ltolll 2006-01-06 02:53:46
原题:
画出同时满足下列两条件的两棵相同的二叉树.
1.按先根序遍历二叉树顺序为ABCDE.
2.高度为5其对应的树(森林)的高度最大为4.
我认为是(只能想出一个):
A
B
C
D
E
可答案为:
A
B
C
D
E
和: A
B
C
D
E
我按照答案遍历得出结果为:AB空CDE,和A空BCDE,这与题意不符啊.
...全文
319 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Code100000 2006-01-10
  • 打赏
  • 举报
回复
不难吧...

记住 右孩子是兄弟,左孩子是孩子 就可以了啊...
ltolll 2006-01-10
  • 打赏
  • 举报
回复
我就是"照着课本"看,可是越看越糊涂.

另外我结贴后为什么看不到加上的分呢,奇怪!
Code100000 2006-01-10
  • 打赏
  • 举报
回复
不好意思。。。这里错了...疏忽了
--------------------------------------
二叉树的根 是一样的...

比如二叉树为:

A
/ \
B C
/ \
D E

这里面,C 是 A 的右孩子,所以在 森林中 ,C 和 A 是一层的 ( C是A的兄弟 )

即:

A C E
|
B
|
D

三棵树 才对...E 是 C 的右孩子,所以森林中 E 是和C 以及 A 是同一层的...

照着课本,再把 森林 转 二叉树 看看...做几道题熟悉一下...Pass...
Code100000 2006-01-10
  • 打赏
  • 举报
回复
兄弟找不到双亲就成为另一棵树

A 是二叉树的根结点嘛...

他的右兄弟自然就是 另一棵树的根啊
ltolll 2006-01-10
  • 打赏
  • 举报
回复
Code100000(秋天怎么还不来……) 的解释很细致,辛苦了.
是不是可以理解为,左孩子就是孩子,右孩子就是兄弟.兄弟找不到双亲就成为另一棵树

请Code100000(秋天怎么还不来……)朋友原路返回,到
"http://community.csdn.net/Expert/topic/4503/4503013.xml?temp=.4770777
我是绕路来的..............."那个地方,发言,接分!

其他朋友就在这贴给分了,谢谢大家.

另外在"程序员英语"版还有一贴没人回(那里人气差一些?)
http://community.csdn.net/Expert/topic/4505/4505126.xml?temp=2.177066E-02
希望大家帮忙,不盛感激.

Code100000 2006-01-10
  • 打赏
  • 举报
回复
Mr_Yang(初级程序员)朋友的回答中,没有提到二叉树的根怎么处理...

------------------------------------------------------------------

二叉树的根 是一样的...

比如二叉树为:

A
/ \
B C
/ \
D E

这里面,C 是 A 的右孩子,所以在 森林中 ,C 和 A 是一层的 ( C是A的兄弟 )

即:

A C
| |
B E
|
D

两棵树.............


累死我了....

http://community.csdn.net/Expert/topic/4503/4503013.xml?temp=.4770777

我是绕路来的...............
Code100000 2006-01-10
  • 打赏
  • 举报
回复
A
/
B
\
C
/
D
/
E


二叉树。。。 B 是 A 的 左孩子,所以在 树(森林)中,B 是 A 的孩子
有:

A
|
B


二叉树中,C 是 B 的右孩子,所以 C 是 B 的兄弟,结合上面的,
有:

A
/ \
B C

...继续下去...

就得到:


A
/ \
B C
|
D
|
E

ltolll 2006-01-09
  • 打赏
  • 举报
回复
谢谢大家的回复
TO: Mr_Yang(初级程序员),提到
把二叉树转换到树和森林自然的方式是:若结点x是双亲y的左孩子,则把x的右孩子,右孩子的右孩子,…,都与y用连线连起来,最后去掉所有双亲到右孩子的连线。
以下面的二叉树为例:

A
/
B
\
C
/
D
/
E

Mr_Yang(初级程序员)朋友的回答中,没有提到二叉树的根怎么处理,这里把它做为对应的树的根即节点A(相当于上述的y),它的左孩子B(相当于上述的x),按照上述方法,B的右孩子C与A相连然后去掉B与C之间的连线,由于树中已不存在右孩子,是不是操作就结束了呢,如果结束了得到的是3棵树
A
|
C
AND
B
AND
D
|
E
这样不对啊,我的理解又出错了.
AAAAAANWJ 2006-01-09
  • 打赏
  • 举报
回复
有意思.
Code100000 2006-01-08
  • 打赏
  • 举报
回复
上面的正确

不过没有 左右孩子 之分...

A B
|
C
|
D
|
E

两棵树....
armman 2006-01-07
  • 打赏
  • 举报
回复
高度为5其对应的树(森林)的高度最大为5.比如你举的例子
ltolll 2006-01-07
  • 打赏
  • 举报
回复
另外,更正一个笔误:
原题:
画出同时满足下列两条件的两棵不相同的二叉树.
。。。

少了一个“不”字。
汗!
ltolll 2006-01-07
  • 打赏
  • 举报
回复
书上说森林是M(M>=0)棵互不相交的树的集合。对树中每个结点而言,其子树的集合即为森林。
这样理解的话,我的答案A可看作所说的结点,而BCDE不就可以看作A结点的(左)子树吗?它的高度不就是4吗?
我知道我的理解肯定不对,但不知错在哪。
yuyongchoice1 2006-01-07
  • 打赏
  • 举报
回复
第二棵树是这样的吧
A B
C
D
E
Code100000 2006-01-07
  • 打赏
  • 举报
回复
我晕...绕口令啊...

理解了不就行了嘛...
Mr_Yang 2006-01-07
  • 打赏
  • 举报
回复
把二叉树转换到树和森林自然的方式是:若结点x是双亲y的左孩子,则把x的右孩子,右孩子的右孩子,…,都与y用连线连起来,最后去掉所有双亲到右孩子的连线。


Code100000 2006-01-07
  • 打赏
  • 举报
回复
AB空CDE,和A空BCDE

空 不就是没有结点嘛,没有结点怎么遍历? 不要“空”的……




A
/
B
\
C
/
D
/
E

这是一棵 二叉树...
转成 树(森林)的话,C 是 B的兄弟吧……

A
/ \
B C
|
D
|
E

是不是应该这样?

maxzhk 2006-01-06
  • 打赏
  • 举报
回复
小弟也是初学,请问一下,我没有看出答案和楼主写的树之间高度上有什么差异
请问森林的高度是指什么啊?
Grubby_c 2006-01-06
  • 打赏
  • 举报
回复
空的不算的 答案是对的
你的答案满足先序,但是森林高度是5(一棵树)
nevil 2006-01-06
  • 打赏
  • 举报
回复
晕,遍历二叉树不需要考虑空结点.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧