社区
数据结构与算法
帖子详情
递归调用转换为堆栈操作能提高效率吗?
joeln
2000-08-31 09:42:00
曾经看过一些数据结构的书中讲可把递归调用转换为堆栈操作,
因为有些问题用递归的思路非常容易构造算法,但递归调用太耗时,
而且占用大量的系统堆栈。使用自己定义的堆栈结构和栈操作能
比系统自己的堆栈效率更高吗?
另外,如何保证递归调用不会造成系统堆栈溢出?
...全文
294
4
打赏
收藏
递归调用转换为堆栈操作能提高效率吗?
曾经看过一些数据结构的书中讲可把递归调用转换为堆栈操作, 因为有些问题用递归的思路非常容易构造算法,但递归调用太耗时, 而且占用大量的系统堆栈。使用自己定义的堆栈结构和栈操作能 比系统自己的堆栈效率更高吗? 另外,如何保证递归调用不会造成系统堆栈溢出?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bright5
2001-08-01
打赏
举报
回复
一般说来递归本身就是用堆栈的,所以不必说递归转成堆栈。
其实,正是由于递归用了堆栈,所以效率才慢,因为遍历所有元素,所以想优化算法,一般将递归转成非递归较好。
第二个问题,我想增加一个判断条件就可以了。
jhb
2000-08-31
打赏
举报
回复
可以。因为递归在实现上就是用栈的,只是系统必需保证通用性,效率应该没有自己实现的高。只是在实现上的优化要认真做才行。溢出问题我想不同的系统和语言有不同的方案的,要具体而言。
jhb
2000-08-31
打赏
举报
回复
从数学上来说,递归是可以转化为等价的循环的。所使用的数据按栈的方式进出,不会有插入操作啊,当然数组好的多了。同时还涉及到你程序的优化。
joeln
2000-08-31
打赏
举报
回复
怎样构造栈才算优化呢?用链表结构还是数组结构好?
递归入门、递归遍历、递归穷举算法
本课程带你从递归算法基础入手,课程是精讲大量实际项目中常用到的案例,课程深入浅出,包括递归入门,递归遍历、弟归穷举算法及各种项目,适合算法爱好者一起学习,后附每堂课项目源码,感兴趣可以观注博客,不定期更新
数据结构:利用栈,将递归
转换
为非递归的方法
利用栈将递归
转换
为非递归 对于一般的递归过程,仿照递归算法执行过程中递归工作栈的状态变化,可直接写出相应的非递归算法。 步骤 第一次调用的参数push进
堆栈
,原有递归代码外层加一个while循环,判断条件就是...
将递归函数
转换
为非递归形式
1. 递归的调用原理:分而治之 为求一个大规模问题的问题,可以: (1)将原问题划分成若干子问题 (2)子问题规模小到一定程序,可以直接求解,即存在递归终止的条件,称做递归出口。 (3)原问题分解的子问题总会...
C++算法篇
递归调用
(函数调用自身)
要理解运用递归要学习理解下面几个问题: ...在数学与计算机科学中,递归是指在函数的定义中调用函数自身的方法。实际上递归其包含了两个意思:递 和 归,这正是递归思想的精华所在。 大师 L. Peter...
3.7栈与递归(下)----递归与非递归
转换
3.7栈与递归(下)----递归与非递归
转换
...其一,有利于提高算法时空性能,因为递归执行时需要系统提供隐式栈实现 递归,效率较低。 其二,无应用递归语句的语言设施环境条件,有些计算机语言不支持递归功 能,如 FO
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章