开发者社区> 问答> 正文

深度优先搜索(堆栈还是递归?)

对于DFS,是否始终需要使用堆栈?在进行了一些研究之后,我看到有些人实现了递归而不是Stack迭代,并且似乎产生了相同的结果。

一个比另一个更有效吗?许多递归算法采用递归运行的辅助或什至第三次辅助方法。

我在问,因为我必须在Graph上使用DFS,我一直在尝试进行递归,我想我几乎钉住了它,但是对于任何错误我都非常谨慎。

展开
收起
垚tutu 2019-12-04 16:21:14 1101 0
1 条回答
写回答
取消 提交回答
  • #include

    我认为,递归是进行深度优先搜索的更易理解的方法,因为代码执行遵循的是您正在实现的想法。另一方面,递归具有一定的风险,因为它使用了调用堆栈,该堆栈是内存的一部分,而内存与堆栈数据结构的存储位置分开,并且其大小受到限制。如果您要深入研究,将触发StackOverflowErrors和终止执行。

    2019-12-04 16:21:19
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载