任务描述
给出如下图的一个图,利用算法算出起点到各个点的最短路径长度,并输出最短的一条长度
#####程序输入样例:
请输入有向图的顶点个数与边数:
5 6
输入点到点之间的权值(格式:点 点 权值 例如:1 2 7)
1 2 2
2 3 10
3 4 1
1 5 3
5 3 4
5 4 11
相关知识
算法步骤:
a. 初始时,S只包含源点,即S={v},v的距离为0。U包含除v外的其他顶点,即: U={其余顶点},若v与U中顶点u有边,则u的距离设置为相应的权值,若u v之间不存在边,则 设置u的距离为无穷大。
b. 从U中选取一个距离 v 最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径长度)。
c. 以k为新考虑的中间点,修改U中各顶点的距离;若从源点 v 到顶点 u 的距离(经过顶点 k)比原来距离(不经过顶点 k)短,则修改顶点u的距离值,修改后的距离值为顶点 k 的距离加上边的权值。
d. 重复步骤b和c直到所有顶点都包含在S中。
####编程要求
comment: <> (“编程要求”部分说一下本关要解决的问题的具体要求,并给出相应代码的框架,以及要求学生填写的那一块)
给出如下图的一个图,利用算法算出起点到各个点的最短路径长度,并输出最短的一条长度
开始你的任务吧,祝你成