赞
踩
目录
前言
如果你要求所有顶点至所有顶点的最短路径问题时,弗洛伊德算法是非常不错的选择。因为它十分简洁。
(1) 两个二维数组D[v][w] 和P[v][w],分别存最短距离和最短路径。
(2) D[v][w] = min(D[v,w] ,D[v][k]+D[k][w])
- /*Floyd算法,求网图G中各顶点v到其余顶点w的最短路径P[v][w]及带权长度D[v][w]*/
- void ShortestPath_Floyd(MGraph G,Patharc*P,ShortPathTable* D)
- {
- int v, w, k;
- /*初始化D与P*/
- for (v = 0; v < G.numVertexes; v++)
- {
- for (w = 0; w < G.numVertexes; w++)
- {
- (*D)[v][w] = G.arc[v][w];
- (*P)[v][w] = w;
- }
- }
-
- for (k = 0; k < G.numVertex
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。