数据结构-拓扑排序和最短路径.ppt

最短路径问题 拓扑排序 某个源点到其余各点的最短路径 每一对顶点之间的最短路径 小结和作业 单源点的最短路径 Dijkstra算法 Dijkstra算法 Dijkstra算法 Dijkstra算法实现 Dijkstra算法实现 1)设置初始值: 2)从D中选择一个最小值,假设为D[k],要求Vk 不在S中 3)修改不在S中的每个顶点u的最短路径值 若D[k]+G.arcs[k][u]D[u] 则D[u]=D[k]+G.arcs[k][u] V0和k之间存在弧 V0和k之间不存在弧 Dijkstra算法 S={V0} 4)重复2,3,直到所有的顶点都在S中 如何保存V0到V的路径? 1、保存V0到V的路径上的顶点(即:不保存边和顶点之间的顺序) 2、存储结构:n×n的矩阵p Dijkstra算法 3、矩阵的第V行表示V0到V的路径上顶点 如果顶点W在路径上,则p[v][w]=TRUE 否则,p[v][w]=FALSE 初始: 如果V与顶点V0邻接,则p[v][V0]=TRUE,其它数矩阵元素的值都是FALSE。 当从V0到V的路径是经过V0到W的路径,然后,通过边W, V到达V,则p[v] =p[w],p[v][v]=TRUE Dijkstra算法 Dijkstra算法 V0 100 10 10 5 50 V1 V

文档评论(0)

1亿VIP精品文档

相关文档