【问题标题】:Do you search in breadth- or depth-first in a recursive algorithm?你在递归算法中是广度优先还是深度优先?
【发布时间】:2017-07-05 10:09:52
【问题描述】:

深度优先搜索使用 LIFO/Stack。 广度优先搜索使用 FIFO/队列。 递归算法有什么用?两者兼而有之?

【问题讨论】:

标签: algorithm recursion depth-first-search breadth-first-search


【解决方案1】:

递归算法总是使用深度优先搜索 (DFS)


伪代码

输入:一个图G和G的一个顶点v

输出:从 v 可到达的所有顶点标记为已发现

DFS 的递归实现:

1  procedure DFS(G,v):
2      label v as discovered
3      for all edges from v to w in G.adjacentEdges(v) do
4          if vertex w is not labeled as discovered then
5              recursively call DFS(G,w)

Wiki source here

【讨论】:

  • 完美!非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
  • 2010-10-15
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 2015-12-12
  • 2013-11-06
相关资源
最近更新 更多