void ShortestDist( MGraph Graph, int dist[], int path[], Vertex S ){
int vis[MaxVertexNum]={0},n=Graph->Nv;
for(int i=0;i<n;i++){
dist[i]=INFINITY;
path[i]=-1;
}
dist[S]=0;
for(int i=0;i<n;i++){
int min=INFINITY,v=-1;
for(int j=0;j<n;j++){
if(vis[j]==0&&dist[j]<min){
v=j;
min=dist[j];
}
}
if(v==-1)
continue;
vis[v]=1;
for(int j=0;j<n;j++){
if(vis[j]==0&&dist[v]+Graph->G[v][j]<dist[j]){
dist[j]=dist[v]+Graph->G[v][j];
path[j]=v;
}
}
}
for(int i=0;i<n;i++){
if(dist[i]==INFINITY){
dist[i]=-1;
}
}
}
6-17 Shortest Path [4] (25 分)
最新推荐文章于 2024-05-14 16:47:54 发布