数据结构——基于C++语言(微课版) 课件 12-单源点最短路径问题.ppt

数据结构——基于C++语言(微课版) 课件 12-单源点最短路径问题.ppt

本节内容:单源点最短路径问题最短路径

最短路径北京上海南京济南徐州280500320180160600260200青岛大连200问题引入:问题提出:-如何求从上海到图中各城市的最短路径?-如何求任意两个城市之间的最短路径?

最短路径问题引入:用带权的有向图表示一个交通运输网,图中:顶点:表示城市弧:表示城市间的交通路线权值:表示此线路的长度或沿此线路运输所花的时间或费用等最短路径:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径。最短路径

最短路径弧上权值为非负情形的单源点最短路径问题问题描述:给定一个带权有向图G(权值均为非负)与源点v,求从v到G中其余各顶点的最短路径。求解方法:迪杰斯特拉(Dijkstra)算法算法思想:(1)集合S存放已求出的最短路径的终点,初始时S={v0},T={其余顶点},求出v0到T中顶点对应的距离值:若存在V0,Vi,为其弧上的权值;不存在V0,Vi,则为?;(2)从T中选取一个其距离值为最小的顶点w,加入S,对T中顶点的距离值进行修改:若加进w作中间顶点,从V0到Vi的距离值比不加w的路径要短,则修改此距离值;(3)重复上述步骤,直到S中包含所有顶点,即S=V为止。

最短路径迪杰斯特拉算法求最短路径V0,V1:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档