像這樣:
for(int i=1;i<=n;i++)
if (!in[i]&&d[minn]+dist[minn][i]<d[i])
{
d[i]=d[minn]+dist[minn][i];
path[i]=minn;
}
minn是壹開始算出來距離最近的點,d為到各點的距離,dist[i][j]指的是第i個到第j個點之間的距離。
壹開始初始path[i]=i;
最後調用函數
void printpath(int x)
{
if (x!=path[x])
printpath(path[x])
pritnf("%d ",x);
}
有不懂還可以問