对于DFS,是否始终需要使用堆栈?在进行了一些研究之后,我看到有些人实现了递归而不是Stack迭代,并且似乎产生了相同的结果。
一个比另一个更有效吗?许多递归算法采用递归运行的辅助或什至第三次辅助方法。
我在问,因为我必须在Graph上使用DFS,我一直在尝试进行递归,我想我几乎钉住了它,但是对于任何错误我都非常谨慎。
我认为,递归是进行深度优先搜索的更易理解的方法,因为代码执行遵循的是您正在实现的想法。另一方面,递归具有一定的风险,因为它使用了调用堆栈,该堆栈是内存的一部分,而内存与堆栈数据结构的存储位置分开,并且其大小受到限制。如果您要深入研究,将触发StackOverflowErrors和终止执行。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)