0
我正在试图使用邻接矩阵来实现Ford-Fulkerson/Edmonds-Karp。唯一不能编程的是使用BFS计算最短路径的函数。看看最短路径实际存在的功能是好的,但是有可能获得最短路径吗?或者是获得BFS的最短路径使用某种父指针并向后遍历以获取路径的唯一方法?仅使用邻接矩阵的BFS最短路径?
这里是我的代码,看看是否存在路径:
public static boolean existsPathFromSourceToSinkInGf(int Gf[][])
{
LinkedList<Integer> queue = new LinkedList<Integer>();
queue.add(0);
while (!queue.isEmpty())
{
int v = queue.remove();
if (v == sink) return true;
for (int i = 0; i < 5; i++)
{
if (Gf[v][i] != 0)
{
if (!queue.contains((Integer)i))
{
queue.add((Integer)i);
}
}
}
}
return false;
}
是的,你应该使用'parent'并且回溯得到数组。由于你的顶点是整数,所以它可以用一个实际上是'int []'的映射来完成 - 其中'parent [i] =节点i的父节点' – amit