第13周项目4 Floyd算法验证
来源:互联网 发布:电脑有网线连不到网络 编辑:程序博客网 时间:2024/05/02 03:05
问题:
/** Copyright(c)2016,烟台大学计算机学院 * All right reserved. * 文件名称:123.cbp * 作者:王靖淇* 完成日期;2016年11月24日 * 版本号;v1.0 * 问题描述:验证Floyd算法* 输入描述:无* 程序输出:测试数据*/
验证用图:
代码:
☆头文件及功能函数代码详见——第12周项目1 图基本算法库
☆主函数main.cpp代码
#include "graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j]; if (k==-1) return; //找到了起点则返回 Ppath(path,i,k); //找顶点i的前一个顶点k printf("%d,",k); Ppath(path,k,j); //找顶点k的前一个顶点j}void Dispath(int A[][MAXV],int path[][MAXV],int n){ int i,j; for (i=0; i<n; i++) for (j=0; j<n; j++) { if (A[i][j]==INF) { if (i!=j) printf("从%d到%d没有路径\n",i,j); } else { char a[4],b[4]; a[i]='A'+i; b[j]='A'+j; printf(" 从%c到%c=>路径长度:%d 路径:",a[i],b[j],A[i][j]); printf("%d,",i); //输出路径上的起点 Ppath(path,i,j); //输出路径上的中间点 printf("%d\n",j); //输出路径上的终点 } }}void Floyd(MGraph g){ int A[MAXV][MAXV],path[MAXV][MAXV]; int i,j,k; for (i=0; i<g.n; i++) for (j=0; j<g.n; j++) { A[i][j]=g.edges[i][j]; path[i][j]=-1; } for (k=0; k<g.n; k++) { for (i=0; i<g.n; i++) for (j=0; j<g.n; j++) if (A[i][j]>A[i][k]+A[k][j]) { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } } Dispath(A,path,g.n); //输出最短路径}int main(){ MGraph g; int A[4][4]= { {0, 15,INF,INF}, {10, 0,INF, 6}, {INF, 8, 0, 2}, {3, INF, 2, 0} }; ArrayToMat(A[0], 4, g); Floyd(g); return 0;}
运行结果:
知识点总结:
运用了Floyd算法求出了所有边的路径长度及路径。
学习心得:
要找到算法之间的联系,同时也要明确具体思路和区别,以免造成混淆。
0 0
- 第13周—项目4 Floyd算法验证
- 第13周项目4-Floyd算法的验证
- 第13周 项目4-Floyd算法验证
- 第13周项目4-Floyd算法验证
- 第13周项目4-Floyd算法的验证
- 【第13周 项目4 - Floyd算法的验证】
- 第13周项目4-Floyd算法的验证
- 第13周项目4 Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- 【第13周 项目4 - Floyd算法的验证】
- 第13周项目4 -Floyd算法的验证
- 第13周项目4 Floyd算法验证
- 第13周项目4-Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- 第13周项目4-Floyd算法的验证
- Android studio MVPHepler插件的安卓及使用
- QQ视频直播架构及原理
- 汇编语言 王爽(第三版)课程设计一
- 第9篇WebRTC-IOS之服务器及信令及信令交换以及会话描述协议
- HDU 2612 Find a way BFS
- 第13周项目4 Floyd算法验证
- 项目 4 - 利用遍历思想求解图问题
- iOS 开发 Object-C和JavaScript交互详解之OC与JS交互在JavaScriptCore中使用
- SEO实战干货:独家揭秘内页快速收录排名
- 第十三周 拓扑排序
- Mongo For Java常用操作
- php使用gzip压缩传输js和css文件的方法
- 第十三周项目5-拓扑排序算法的验证
- android-学习-socketxxx