社区
数据结构与算法
帖子详情
严蔚敏版数据结构错误还是我的错误?
laraya
2008-11-28 07:18:30
二叉树那章,第131页书的原话这样:
不论按那一种次序进行遍历,对含n个节点的二叉树,其时间复杂度均为O(n)。所需辅助空间为遍历过程中栈的最大容量,即树的
深度,最坏情况下为n,则空间复杂度也为O(n)。
其中我觉得有错误的是这句话:最坏情况下为n,
事实上如果按先序非递归遍历时候,利用栈,我们在算法上能做到栈的最大容量只需要二叉树的深度减去1,即最坏情况下为n-1;
大家说是这样吗?
...全文
161
5
打赏
收藏
严蔚敏版数据结构错误还是我的错误?
二叉树那章,第131页书的原话这样: 不论按那一种次序进行遍历,对含n个节点的二叉树,其时间复杂度均为O(n)。所需辅助空间为遍历过程中栈的最大容量,即树的 深度,最坏情况下为n,则空间复杂度也为O(n)。 其中我觉得有错误的是这句话:最坏情况下为n, 事实上如果按先序非递归遍历时候,利用栈,我们在算法上能做到栈的最大容量只需要二叉树的深度减去1,即最坏情况下为n-1; 大家说是这样吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahjoe
2008-11-29
打赏
举报
回复
这个,不需要这么精确!就像O(N),你咱不说是O(N-1)呢
chuchuzinnia
2008-11-29
打赏
举报
回复
up
laraya
2008-11-29
打赏
举报
回复
[Quote=引用 2 楼 C1053710211 的回复:]
LZ认为需要n-1的空间是不是因为最后一个结点的是叶子结点所以可以不用进栈呢,
但是当我们编写程序时,无论是递归的还是非递归的,遍历到这个结点时我们第一个操作是什么呢,
是进栈操作,而对于这个结点是否是叶子结点的判断是在递归的下一次函数调用或者是非递归的下一次取栈顶元素时判断,
如果想LZ那样认为的话,在每当遍历到一个结点时就需要判断这个结点是否左右孩子都为空,如果是的话就不用进栈了,
于是就有在最…
[/Quote]
我的算法是栈只入右孩子,能做到入栈次数较少,并且栈容量也很小,但算法确实增加了一个判断条件,
即是如果结点的右孩子非空则右孩子入栈.
说的应该有道理。
C1053710211
2008-11-29
打赏
举报
回复
LZ认为需要n-1的空间是不是因为最后一个结点的是叶子结点所以可以不用进栈呢,
但是当我们编写程序时,无论是递归的还是非递归的,遍历到这个结点时我们第一个操作是什么呢,
是进栈操作,而对于这个结点是否是叶子结点的判断是在递归的下一次函数调用或者是非递归的下一次取栈顶元素时判断,
如果想LZ那样认为的话,在每当遍历到一个结点时就需要判断这个结点是否左右孩子都为空,如果是的话就不用进栈了,
于是就有在最后一个操作时没有进栈,用到了n-1个空间,但是每次都这么判断的话是会降低程序效率的,
试想那些非叶子结点都要经历这个判断对于他们是毫无意义的,增加了开销。
妄自猜测
oyzdz1988
2008-11-28
打赏
举报
回复
有必要这么细吗,也许是书的错误吧
清华大学
严蔚敏
版
数据结构
讲义PPT
清华大学
严蔚敏
版
数据结构
讲义PPT,有些小的
错误
清华
严蔚敏
《
数据结构
》的全部代码实现(C语言)
1. 本文是对
严蔚敏
《
数据结构
(c语言
版
)习题集》一书中所有算法设计题目的解决方案,主要作者为kaoyan.com计算机
版
版
主一具.以下网友:siice,龙抬头,iamkent,zames,birdthinking等为答案的修订和完善工作提出了宝贵意见,在此表示感谢; 2. 本解答中的所有算法均采用类c语言描述,设计原则为面向交流、面向阅读,作者不保证程序能够上机正常运行(这种保证实际上也没有任何意义); 3. 本解答原则上只给出源代码以及必要的注释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果; 5. 由于作者水平所限,本解答中一定存在不少这样或者那样的
错误
和不足,希望读者们在阅读中多动脑、勤思考,争取发现和纠正这些
错误
,写出更好的算法来.请将你发现的
错误
或其它值得改进之处向作者报告: yi-ju@263.net
严蔚敏
数据结构
C语言
版
根据网络上流传的官方
版
本,自己重新写过的,经测试,代码都能正确运行,如有
错误
,还请指正。
答案.[
数据结构
题集(C语言
版
)].
严蔚敏
_吴伟民CHM
清华大学
严蔚敏
数据结构
习题集(C
版
)答案 【说明】 1. 本文是对
严蔚敏
《
数据结构
(c语言
版
)习题集》一书中所有算法设计题目的解决方案,主要作者为kaoyan.com计算机
版
版
主一具.以下网友:siice,龙抬头,iamkent,zames,birdthinking等为答案的修订和完善工作提出了宝贵意见,在此表示感谢; 2. 本解答中的所有算法均采用类c语言描述,设计原则为面向交流、面向阅读,作者不保证程序能够上机正常运行(这种保证实际上也没有任何意义); 3. 本解答原则上只给出源代码以及必要的注释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果; 5. 由于作者水平所限,本解答中一定存在不少这样或者那样的
错误
和不足,希望读者们在阅读中多动脑、勤思考,争取发现和纠正这些
错误
,写出更好的算法来.请将你发现的
错误
或其它值得改进之处向作者报告: yi-ju@263.net
严蔚敏
《
数据结构
(c语言
版
)习题集》
说明: 1. 本文是对
严蔚敏
《
数据结构
(c语言
版
)习题集》一书中所有算法设计题目的解决方案,主要作者为一具.以下网友:biwier,szm99,siice,龙抬头,iamkent,zames,birdthinking,lovebuaa等为答案的修订和完善工作提出了宝贵意见,在此表示感谢; 2. 本解答中的所有算法均采用类c语言描述,设计原则为面向交流、面向阅读,作者不保证程序能够上机正常运行(这种保证实际上也没有任何意义); 3. 本解答原则上只给出源代码以及必要的注释,对于一些难度较高或思路特殊的题目将给出简要的分析说明,对于作者无法解决的题目将给出必要的讨论.目前尚未解决的题目有: 5.20, 10.40; 4. 请读者在自己已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果; 5. 由于作者水平所限,本解答中一定存在不少这样或者那样的
错误
和不足,希望读者们在阅读中多动脑、勤思考,争取发现和纠正这些
错误
,写出更好的算法来.请将你发现的
错误
或其它值得改进之处向作者报告: yi-ju@263.net
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章