在算法竞赛的图论问题中,在求最短路径等的问题时,我们经常是逆序的存放路径的,因此在最后输出路径时极为不便。
以下采用递归形式的遍历方法,可以很好地解决这一痛点
首先我们在主函数中把终点作为参数直接传入
PrintPath(target);
在输出路径的同时,考虑到了输出格式的问题
void PrintPath(int v) {
if (v == start) {
printf("%d", v);
return;
}
PrintPath(path[v]);
printf(" %d", v);
}