修改单源最短路径算法,使它确实能储存并返回最短路径,而不仅仅是计算其长度

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:15:30
请使用JAVA语言来编写程序

public static void Dijikstra(Graph G,int s,int[] D,int[] father)
{
for(int i=0;i<G.n();i++)
D[i]=Integer.MAX_VALUE;
D[s]=0;
for(int i=0;i<G.n();i++) {

int v=minVertex(G,D);
G.setMark(v,1);
if(D[v]==Integer.MAX_VALUE)return ;
for(Edge w=G.first(v);G.isEdge(w);w=G.next(w)) {
if(D[G.v2(w)]>(D[v]+G.weight(w))) {
D[G.v2(w)]=D[v]+G.weight(w);
father[G.v2(w)]=v;

}
}
}
}