【发布时间】:2017-07-05 10:09:52
【问题描述】:
深度优先搜索使用 LIFO/Stack。 广度优先搜索使用 FIFO/队列。 递归算法有什么用?两者兼而有之?
【问题讨论】:
-
递归使用(调用)栈。
-
你搞错了:栈是先进先出,队列是后进先出。
标签: algorithm recursion depth-first-search breadth-first-search
深度优先搜索使用 LIFO/Stack。 广度优先搜索使用 FIFO/队列。 递归算法有什么用?两者兼而有之?
【问题讨论】:
标签: algorithm recursion depth-first-search breadth-first-search
递归算法总是使用深度优先搜索 (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)
【讨论】: