第七章+图讲述.ppt

* Dijkstra算法 ① 初始化: S ← { v0 }; dist[j] ← Edge[0][j], j = 1, 2, …, n-1; // n为图中顶点个数 ② 求出最短路径的长度: dist[k] ← min { dist[i] }, i ? V- S ; S ← S U { k }; ③ 修改: dist[i] ← min{ dist[i], dist[k] + Edge[k][i] }, 对于每一个 i ? V- S ; ④ 判断:若 S = V, 则算法结束,否则转 ②。 * void ShortestPath (MTGraph G, int v ){ //MTGraph是一个有 n 个顶点的带权有向图,各边上的 权值由Edge[i][j]给出。 //dist[j], 0? jn, 是当前求到的从顶点v 到顶点 j 的最短 路径长度, 用数组path[j], 0? jn, 存放求到的最短路径。 EdgeData dist[G.n]; //最短路径长度数组 int path[G.n]; //最短路径数组

文档评论(0)

1亿VIP精品文档

相关文档