void Dijkstra ( int G[][N],int v0,int dist[],int path[],int n)
{
int i,j,k,s[n],minD;
for(i=1;i<=n;i++)
{
s[i]=0;
dist[i]=G[v0][i];
if(!=v0&&dist[i]<INT_MAX)
path[i]=v0;
else
path[i]=-1;
}
s[vo]=1;
for(i=1;i<n;i++)
{
minD=INT_MAX;
for(j=1;j<=n;j++)
{
if(s[j]==0&&dist[j]<INT_MAX)
{
minD=dist[j];
k=j;
}
s[k]=1;
}
for(j=1;j<=n;j++)
{
if(s[j]==0&&G[k][j]<INT_MAX&&dist[j]>G[k][j]+dist[k])
{
dist[j]=G[k][j]+dist[k];
path[j]=k;
}
}
}
}
Dijkstra算法
最新推荐文章于 2024-09-13 22:19:36 发布