图论的一些算法——c语言、c++

时间:2012-06-20 12:10:27
【文件属性】:

文件名称:图论的一些算法——c语言、c++

文件大小:39KB

文件格式:DOC

更新时间:2012-06-20 12:10:27

图论

图论的一些算法 namespace FloydNS { // /**/ /* 解决:所有点对最短路径 *算法:Floyd——O(V^3) *输入:加权连通图(矩阵):g *输出:最短距离长度矩阵d[][], 路径矩阵p[][] */ GraphMatrix < double > g; double d[maxV][maxV]; // 最短路径长度 int p[maxV][maxV]; // 最短路径下一顶点 void floyd() { int i,s,t; for (s = 0 ; s < g.v; ++ s) { for (t = 0 ; t < g.v; ++ t) if ( (d[s][t] = g.a[s][t]) < Inf) p[s][t] = t; d[s][s] = 0 ; } for (i = 0 ; i < g.v; ++ i) for (s = 0 ; s < g.v; ++ s) if (s != i && d[s][i] < Inf) for (t = 0 ; t < g.v; ++ t) if (d[s][t] > d[s][i] + d[i][t]) { [Page] d[s][t] = d[s][i] + d[i][t]; p[s][t] = p[s][i]; } } }


网友评论

  • 还不错,值得参考学习图论,如果注释更详细些就更好啦