即,每次松弛时,记录是松弛了哪一个点.然后输出时递归输出即可.
弄一个矩阵R[][]初始化为0,然后比如你的距离矩阵是D[][]
松弛改为是:
if(D[i][j] >D[i][k]+D[k][j]){
D[i][j] = D[i][k]+D[k][j]
R[i][j] = k
}
输出时可以写一个递归函数
function out(a,b){
if(R[a][b] == 0){
return
}
out(a,R[a][b])
//输出k
out(R[a][b],b)
}
即,每次松弛时,记录是松弛了哪一个点.然后输出时递归输出即可.
弄一个矩阵R[][]初始化为0,然后比如你的距离矩阵是D[][]
松弛改为是:
if(D[i][j] >D[i][k]+D[k][j]){
D[i][j] = D[i][k]+D[k][j]
R[i][j] = k
}
输出时可以写一个递归函数
function out(a,b){
if(R[a][b] == 0){
return
}
out(a,R[a][b])
//输出k
out(R[a][b],b)
}