求单源最短路的Dijkstra算法
请编写程序,实现在带权的有向图中求单源最短路的 Dijkstra 算法。
注意:当多个待收录顶点路径等长时,按编号升序进行收录。
输入格式:
输入首先在第一行给出两个正整数,依次为当前要创建的图的顶点数 n(≤100)和边数 m。
随后 m 行,每行给出一条有向边的起点编号、终点编号、权重。顶点编号从 0 开始,权重(≤100)为整数。同行数字均以一个空格分隔。
输出格式:
参考样例。按顶点编号的升序,每行输出一个顶点的信息,格式为:
v[i]: dist=x, path=y
其中 i
为顶点编号;x
为顶点 0 到顶点 i
的最短距离;y
为对应的最短路径上,i
的前驱顶点编号。因为起点 0 没有前驱顶点,所以对应的 y
记为 -1
。
输入样例:
6 9
0 1 1
0 2 12
1 2 9
1 3 3
2 4 5
3 2 4
3 4 13
3 5 15
4 5 4
输出样例:
v[0]: dist=0, path=-1
v[1]: dist=1, path=0
v[2]: dist=8, path=3
v[3]: dist=4, path=1
v[4]: dist=13, path=2
v[5]: dist=17, path=4