严版的数据结构(C语言版)里对中序遍历森林的讲法是否有问题?

great_chenliang 2005-01-17 11:30:26
第139页,

二、中序遍历森林
若森林非空,则可按下述规则遍历之:
(1)中序遍历森林中第一棵树的根节点的子树森林;
(2)访问第一棵树的根节点;
(3)中序遍历除去第一棵树之后剩余的树构成的森林。

然后在下面一段中写到,

...上述森林的先序和中序遍历即为其对应的二叉树的先序和中序遍历。...

对于下面的森林,

A E G
/ | \ | / \
B C D F H I
|
J

书上说得到森林的中序序列为 B C D A F E H J I G


我觉得不对吧,按照书上的定义应该是 B A C D F E H G J I 吧。或者说,应该是森林的后序遍历才是对应的二叉树的中序遍历吧。
不知道是我的理解出了问题还是书的纰漏?请大家帮我看看,谢谢!
...全文
416 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
great_chenliang 2005-01-26
  • 打赏
  • 举报
回复
哦~这本书啊,我没有看过,是你们学校的教材吗?
『后根周游』的讲法确实比『森林的中序遍历』更贴近遍历的结果。那么,张的这本书里是如何定义『后根周游』的呀?严的书里用的递归定义,乍一看确确实实就是一『中序』形式。感觉是不是还有别的更不易混淆的方式来定义?
hongjue 2005-01-24
  • 打赏
  • 举报
回复
高教版《算法与数据结构》 张乃孝主编

直接将此周游定义为“后根周游”。见P113。

我比较赞成将其视为后根周游,毕竟区分树与树林形式上如此混淆的定义是在不容易。

great_chenliang 2005-01-21
  • 打赏
  • 举报
回复
谢谢,书上的内容就不劳重复了;)
watermelontx 2005-01-20
  • 打赏
  • 举报
回复

你先将森林转换成二叉树
A
/ \
B E
\ / \
C F G
\ /
D H
\
I
/
J
所以中序的结果:B C D A F E H J I G
avalonBBS 2005-01-19
  • 打赏
  • 举报
回复
先mark一下,还没学到呢 *^-^*
great_chenliang 2005-01-19
  • 打赏
  • 举报
回复
楼上朋友估计没有看懂我的问题:)
ryyy 2005-01-19
  • 打赏
  • 举报
回复
森林和对应二叉树的转化你可以仔细看看。二叉树最后结果相对于原森林来说是“左子女,右兄弟”。
连星入剑端 2005-01-18
  • 打赏
  • 举报
回复
再补充一句:
树没有所谓的中根遍历(多个子女,你该在哪一个子女被访问后访问根节点呢?)
森林也没有的后序遍历的这种提法。
great_chenliang 2005-01-18
  • 打赏
  • 举报
回复
哦,对的,我被它定义的形式搞糊涂了。

谢谢,两位 ;D

现在我觉得,虽然叫森林的中序遍历,但是对一棵树的局部遍历效果就是树的后根次序遍历。我这样理解对不对?即如果将这些森林依次作为一棵树的第二层,也就是给它们一个虚拟的root,那么这棵树的后根遍历序列在去除root后,完全等同于原森林的所谓中序遍历。

可不可以这样理解啊?
连星入剑端 2005-01-17
  • 打赏
  • 举报
回复
书上应该没有错。
我的理解是:
先根遍历和后根遍历是针对单棵树来讲的,
而先序遍历和中序遍历是针对森林(多棵树)来说的,两者所指的对象不同,不能混为一谈,认为先序遍历和先根遍历是一回事。
你仔细按照森林的中序遍历的定义走一遍,应该就可以发现问题所在了。
1、树的先根遍历、后根遍历和对应二叉树的先序遍历和中序遍历相对应。
2、森林的先序遍历、中序遍历和对应二叉树的先序遍历和中序遍历相对应。
以上供参考。
LeeMaRS 2005-01-17
  • 打赏
  • 举报
回复
我觉得书上讲的是对的.二、中序遍历森林

(1)中序遍历森林中第一棵树的根节点的子树森林;
第一棵树是A( B() C() D() ), 根节点的子树森林指的是B() C() D(), 这里就递归遍历了, 所以序列出来的是B C D

(2)访问第一棵树的根节点;
在这里访问了A.

(3)中序遍历除去第一棵树之后剩余的树构成的森林。
现在森林为E( F() ) G( H() I( J() ) ),按照我刚才讲的做, 就会得到书上的那个答案.

great_chenliang 2005-01-17
  • 打赏
  • 举报
回复
.A.. E. G
/ | \ | / \
B C D F H I
..........|
..........J

空格被吃掉了,不知这样对齐否...

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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