2016_数据结构_第7章综述.ppt

2016_数据结构_第7章综述

② 将图中一个顶点Vk 加入到S中,修改A[i][j]的值,修改方法是: A[i][j]=Min{A[i][j] , (A[i][k]+A[k][j]) } 1 算法思想 设顶点集S(初值为空),用数组A的每个元素A[i][j]保存从Vi只经过S中的顶点到达Vj的最短路径长度,其思想是: ① 初始时令S={ } , A[i][j]的赋初值方式是: Wij i≠j且vi,vj∈E, wij为弧上的权值 ∞ i≠j且vi,vj不属于E A[i][j]= 0 i =j时 * 7.7.2 每一对顶点间的最短路径 原因: 从Vj只经过S中的顶点(Vk)到达Vj的路径长度可能比原来不经过Vk的路径更短。 ③ 重复②,直到G的所有顶点都加入到S中为止。 2 算法实现 ◆ 定义二维数组Path[n][n](n为图的顶点数) ,元素Path[i][j]保存从Vi到Vj的最短路径所经过的顶点。 ◆ 若Path[i][j]=k:从Vi到Vj 经过Vk ,最短路径序列是(Vi , …, Vk , …, Vj) ,则路径子序列:(Vi , …, Vk)和(Vk , …, Vj)一定是从Vi到Vk和从Vk到Vj 的最短路径。从而可以根据Path[i][k]和Path[k][j]的值再找到该路径上所经过的其它顶点,…依此类推。 * 7.7.2 每一对顶点间的最短路径 ◆

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档