void Floyd(AdjMatrix N,int A[][MAX],int p[][MAX])
{
int temp,i,j,k;
for(i=1;i<N.vexnum;i++)
{
for(j=1;j<=N.vexnum;j++)
{
A[i][j]=N.edges[i][j];
if(INFINITY==N.edges[i][j])
p[i][j]=0;
else
p[i][j]=i;
}
}
for(k=1;k<=N.vexnum;k++)
{
for(i=1;i<=N.vexnum&& i!=k && INFINITY !=A[i][k];i++)
{
for(j=1;j<=N.vexnum && j!=i;j++)
{
temp=A[i][k]+A[i][j];
if(A[i][j]>temp)
{
A[i][j]=temp;
p[i][j]=k;
}
}
}
}
}
弗洛伊德算法
最新推荐文章于 2014-02-24 17:24:25 发布