欢迎来到天天文库
浏览记录
ID:37918755
大小:36.50 KB
页数:6页
时间:2019-06-02
《floyd算法C++实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#includeusingnamespacestd;#define MAXV 100#define INF 32767typedefintInfoType;typedefintVertex;typedefstruct{ intno; InfoTypeinfo; }VertexType; //顶点类型typedefstruct
2、 { intedges[MAXV][MAXV]; intn,e; VertexTypevexs[MAXV];}MGraph; //图类型voidPpath(intpath[][MAXV],inti,intj){ intk; k=path[i][j]; if(k==-1) return; //递归出口 Ppath(path,i,k);
3、 cout<4、径"; } else { cout<<"从"<5、hg){ intA[MAXV][MAXV],path[MAXV][MAXV]; inti,j,k; for(i=0;i(A[i][k]+A[k][j])) 6、 { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } Dispath(A,path,g.n); //输出最短路径 }voidDispMat(MGraphg){ inti,j; for(i=0;i7、)<>g.n>>g.e; cout<<"输入邻接矩阵g的元素值8、:"; for(i=0;i>g.edges[i][j]; } cout<<"输出邻接矩阵g:"; DispMat(g); cout<<"输出每对顶点之间的最短路径:"; Floyd(g); cout< #defineMaxm501 usingnamespacestd; ifstreamfin; ofst
4、径"; } else { cout<<"从"<
5、hg){ intA[MAXV][MAXV],path[MAXV][MAXV]; inti,j,k; for(i=0;i(A[i][k]+A[k][j]))
6、 { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } Dispath(A,path,g.n); //输出最短路径 }voidDispMat(MGraphg){ inti,j; for(i=0;i7、)<>g.n>>g.e; cout<<"输入邻接矩阵g的元素值8、:"; for(i=0;i>g.edges[i][j]; } cout<<"输出邻接矩阵g:"; DispMat(g); cout<<"输出每对顶点之间的最短路径:"; Floyd(g); cout< #defineMaxm501 usingnamespacestd; ifstreamfin; ofst
7、)<>g.n>>g.e; cout<<"输入邻接矩阵g的元素值
8、:"; for(i=0;i>g.edges[i][j]; } cout<<"输出邻接矩阵g:"; DispMat(g); cout<<"输出每对顶点之间的最短路径:"; Floyd(g); cout< #defineMaxm501 usingnamespacestd; ifstreamfin; ofst
此文档下载收益归作者所有