<分区>
我试图了解 DFS 递归和 DFS 迭代之间的区别。有堆栈的是使用迭代还是递归方法?
例如,使用图的 DFS 递归遍历和图的 DFS 迭代遍历会输出什么?邻居按字母顺序迭代。
这是图表:
对于 DFS 遍历(带堆栈的遍历,不确定它是递归的还是迭代的)这是我得到的:A、C、D、E、F。有人可以确认这是什么类型的 DFS 遍历,以及另一个如何工作?谢谢!
<分区>
我试图了解 DFS 递归和 DFS 迭代之间的区别。有堆栈的是使用迭代还是递归方法?
例如,使用图的 DFS 递归遍历和图的 DFS 迭代遍历会输出什么?邻居按字母顺序迭代。
这是图表:
对于 DFS 遍历(带堆栈的遍历,不确定它是递归的还是迭代的)这是我得到的:A、C、D、E、F。有人可以确认这是什么类型的 DFS 遍历,以及另一个如何工作?谢谢!
最佳答案
据我了解,递归和迭代版本的区别仅在于堆栈的使用。递归版本使用调用堆栈,而迭代版本执行完全相同的步骤,但使用用户定义的堆栈而不是调用堆栈。步骤顺序本身没有区别(如果使用合适的打破平局规则来确保子节点的遍历顺序相同 - 如果需要的话),因此不可能检查输出来决定是使用迭代实现还是递归实现.
关于algorithm - DFS 递归与 DFS 迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033429/