void floyd(int n,int MGraph,int path[][max]){
int i,j,v;
int A[n][n];
for(i=0;i<n;i++)
for(j=0;j<n;j++){
A[i][j]=MGraph[i][j];
path[i][j]=-1;
}
for(v=0;v<n;v++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(A[i][j]>A[v][j]+A[i][v]){
A[i][j]=A[v][j]+A[i][v];
path[i][j]=v;
}
}
void path(int u,int v,int path[][max]){
if(path[u][v]==-1);//输出
else{
int mid = path[u][v];
path(u,mid,path);
path(mid,v,path);
}
}
Floyd
最新推荐文章于 2025-04-25 21:12:48 发布