Algorithm 在递归算法中,你是先搜索广度还是先搜索深度?

Algorithm 在递归算法中,你是先搜索广度还是先搜索深度?,algorithm,recursion,depth-first-search,breadth-first-search,Algorithm,Recursion,Depth First Search,Breadth First Search,深度优先搜索使用后进先出/堆栈。 宽度优先搜索使用FIFO/队列。 递归算法使用什么?两者的结合?递归算法始终使用深度优先搜索(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

深度优先搜索使用后进先出/堆栈。 宽度优先搜索使用FIFO/队列。
递归算法使用什么?两者的结合?

递归算法始终使用深度优先搜索(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)


递归使用(调用)堆栈。你已经把它倒过来了:堆栈是FIFO,队列是LIFO。太好了!多谢各位!