我正在编写一个算法代码,该算法可以找到源和目标之间的多条路径。哪个是存储我在每次迭代中从修改后的Dijkstra获得的路径的最佳方法,以便稍后删除隔行扫描的路径?我从一个名为previous的向量中获取路径,从目的地开始直到我到达源。矩阵似乎并不适合每条路径。
int l[SDIM][SDIM];
int d[SDIM], s[SDIM], p[SDIM];
int i,j,a,z,prev,minD,minJ,count;
for (i=0;i<SDIM;i++)
{
d[i]=l[a][i];
s[i]=1;
p[i]=a;
}
s[a] = 0;
prev=a;
do
{
minD=MAX;
for (j=0;j<SDIM;j++)
{
if ((s[j]==1) && (d[j]<minD))
{
minD=d[j];
minJ=j;
}
}
s[minJ] = 0;
prev=minJ;
if (prev==z) break;
for (i=0;i<SDIM;i++)
{
if ((l[prev][i]!=MAX) && (d[i]>(d[prev]+l[prev][i])))
{
d[i]=d[prev]+l[prev][i];
p[i]=prev;
s[i]=1;
}
}
}while(1);