在程序中,在搜索一幅图时遇到有多边需要遍历的情况的时候,我们会选择其中一条并将其他通道留到以后继续搜索。
- 在深度优先搜索中,我们用了一个可以下压的栈,来支持递归搜索方法。使用LIFO(后进先出)的规则来描述压栈和走迷宫时先探索相邻的通道类似。从有待搜索的通道中选择最晚遇到的那条。
- 在广度优先搜索中,我们希望按照起点的距离的顺序遍历所有顶点,使用FIFO(先进先出)队列代替栈即可。我们将从有待搜索的通道中选择最早遇到的那条。
DFS寻找路径
public class DeapthFisrtPaths
{
private boolean[] marked;
private int[] edgeTo;
private final int s;
public DeapthFirstPaths(Graph G, int s)
{
marked = new boolean[G.V()];
edgeTo = new int{
G.V()]
this.s = s;
dfs(G,s);
}
private void