Algorithm 在递归算法中,你是先搜索广度还是先搜索深度?
深度优先搜索使用后进先出/堆栈。 宽度优先搜索使用FIFO/队列。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
递归算法使用什么?两者的结合?递归算法始终使用深度优先搜索(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。太好了!多谢各位!