每对顶点之间的最短路径-Floyd
2011-05-03 12:51
357 查看
void Floyd( MGraph G, int path[][MAX_VERTEX_NUM], VRType dist[][MAX_VERTEX_NUM] ) { //用Floyd算法求有向网G中每对顶点之间的最短路径path[i][j]及 //带权路径长度dist[i][j],dist[i][j]存放顶点vi到vj的最短距离, //path[i][j]保存从源点vi到终点vj的最短路径中的源点vi的下一个顶点的序号 int i,j,k; for( i=0; j<G.vexnum; ++i ) for( j=0; j<G.vexnum; ++j ) { dist[i][j] = G.arcs[i][j].adj; //初值为i到j 的直接距离 path[i][j] = j; //初值为顶点vj的序号 } for( k=0; k<G.vexnum; ++k ) { for( i=0; i<G.vexnum; ++i ) { for( j=0; j<G.vexnum; ++j ) { if( i==k || j==k|| i==j) continue; if( dist[i][j] > dist[i][k]+dist[k][j] ) //得到新的最短路径长度值 { dist[i][j] = dist[i][k]+dist[k][j]; //更新最短路径长度值 path[i][j] = path[i][k]; //更新最短路径 } }//for(j...) }//for(i...) }//for(k...) }//Floyd
相关文章推荐
- 每一对顶点之间的最短路径【Floyd】
- 所有顶点对之间的最短路径之Floyd-Warshall算法
- 【动态规划】每对顶点之间的最短路径之Floyd-Warshall算法
- 顶点对之间的最短路径---Floyd
- Geeks面试题:Floyd Warshall Algorithm 所有顶点之间的最短路径问题
- 图——每对顶点之间的最短路径 ——弗洛伊德算法
- Floyd算法-所有顶点之间的最短路径(C++模板)
- spark primer 计算每个每个顶点之间最短路径
- 弗洛伊德算法得到图中任意两个顶点之间的最短路径
- hnu12519 Travelling Tom 求所有顶点的最短路径(floyd)
- 求有向网中任意一对顶点之间的最短路径 Floyd算法
- 【算法导论】【Floyd-Warshall 算法】每对节点之间的最短路径
- 算法导论学习笔记(19)——每对顶点间的最短路径(基于Floyd_Warshall算法)
- 数据结构课程设计:两顶点之间最短路径
- hnu12519 Travelling Tom 求所有顶点的最短路径(floyd)
- Floyd算法验证-每队顶点之间的最短路径
- 第十二周项目4--每对顶点之间的最短路径
- FLOYD每对顶点间最短路径算法
- _DataStructure_C_Impl:Floyd算法求有向网N的各顶点v和w之间的最短路径
- 所有顶点之间的最短路径算法:Floyd算法。