我在一个 java 项目中工作,我想在一个图中显示所有路径(这个图使用邻接矩阵表示)。我尝试使用 DFS 算法,但如何显示所有这些路径?
我试试这个
for(int i=0; i<nr; i++)
for(int j=0; j<nr; j++)
dfs(i,j);
DFS算法是这样的:
public static void dfs(int src, int dst) {
al.add(src);
size++;
color[src] = true;
if (src == dst) { // tests for base condition to stop
for (Integer i : al) {
// Prints the path
System.out.print(i + " ");
}
System.out.println();
return;
}
for (int I = 0; I < nr; I++) {
if (matrix[src][I].contains("1") {
if (color[I] == false) {
dfs(I, dst); // These lines do
color[I] = false; // main job of backtracking
size--;
al.remove(size);
}
}
}
}
如果我调用函数 dfs(2,3) 结果很好,但该循环似乎不起作用。