DFS递归与DFS迭代

Bos*_*Man 5 algorithm recursion depth-first-search

我试图理解DFS递归和DFS迭代之间的区别.堆栈中的那个使用迭代或递归方法吗?

例如,使用图的DFS递归遍历和图的DFS迭代遍历的输出是什么?邻居按字母顺序迭代.

下图:

在此输入图像描述

对于DFS遍历(具有堆栈的那个,不确定它是递归的还是迭代的)这是我得到的:A,C,D,E,F.有人可以确认这是什么类型的DFS遍历,以及其他如何一个会工作?谢谢!

Cod*_*dor 2

据我了解,递归和迭代版本仅在堆栈的使用方面有所不同。递归版本使用调用堆栈,而迭代版本执行完全相同的步骤,但使用用户定义的堆栈而不是调用堆栈。步骤顺序本身没有区别(如果使用合适的平局打破规则来确保子节点的相等遍历顺序 - 如果需要的话),因此不可能检查输出来决定是否使用迭代或递归实现。

  • 这并不完全正确。递归方法和迭代方法之间的输出存在差异。有关详细信息,请参阅[迭代 DFS 与递归 DFS 以及不同的元素顺序](http://stackoverflow.com/q/9201166/572670) (7认同)