【发布时间】:2014-06-18 03:38:52
【问题描述】:
我制作了图形的整个邻接表表示。我也能够实现 BFS 代码。但是,我无法理解 DFS。
我已经能够想出这个算法:
- 将源顶点标记为已访问。
- 将其推入堆栈。
- 当堆栈不为空时 { 删除顶点并将其命名为 v。 为 v 的所有邻居调用 dfs。 }
这是正确的吗?我想做一个完整的图表遍历。这也应该有一个基本案例,但它会是什么?
【问题讨论】:
-
这不是一个真正的问题,您只需要了解有关 DFS 的更多信息。这里有一个相当不错的伪代码和解释 - en.wikipedia.org/wiki/Depth-first_search
-
但是我读到了,这就是我想说的。应该有一些递归的基本情况。会是什么?
-
基本情况是堆栈为空时。
-
我想出了这个,这就是我在原始帖子中所写的。但我知道,那里似乎缺少一些东西,因为没有完整的 DFS 递归实现算法。
-
你谷歌了吗?这里有工作代码:stackoverflow.com/questions/11175108/…
标签: c