2015年大二上-数据结构-图-2-(4)-Floyd算法
来源:互联网 发布:react.js .百度百科 编辑:程序博客网 时间:2024/05/21 10:23
/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2016年3月2日*版本号:v1.0**问题描述:Floyd算法*输入描述:图*输出描述:Floyd算法*/#include<stdio.h>#include<malloc.h>#include "Graph.h"#define MaxSize 100void Ppath(int path[][MAXV],int i,int j) //前向递归查找路径上的顶点{ int k; k=path[i][j]; if(k==-1) return ; printf("%d,",k); Ppath(path,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) printf("从%d到%d没有路径\n",i,j); else { printf(" 从%d到%d=>路径长度:%d 路径:",i,j,A[i][j]); printf("%d,",i); //输出路径上的起点 Ppath(path,i,j); //输出路径上的中间点 printf("%d\n",j); //输出路径上的终点 } }}void Floyd(MGraph g){ int i,j,k,A[MAXV][MAXV],path[MAXV][MAXV]; 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, 5,INF,7}, {INF,0, 4,2}, {3, 3, 0,2}, {INF,INF,1,0} }; ArrayToMat(A[0], 4, g); Floyd(g); return 0;}
注:例程中的测试图
运行结果:
0 0
- 2015年大二上-数据结构-图-2-(4)-Floyd算法
- 2015年大二上-数据结构-图-2-(2)-Kruskal算法
- 2015年大二上-数据结构-图-2-(1)-Prim算法
- 2015年大二上-数据结构-图-2-(3)-Dijkstra算法
- 2015年大二上-数据结构-图-2-(5)-拓扑排序
- 2015年大二上-数据结构-链表(3)-单链表算法
- 2015年大二上-数据结构-图-1-(4)-利用遍历思想求解图问题(2)
- 2015年大二上-数据结构-图-1-(1)图基本算法库
- 2015年大二上-数据结构-图-1-(3)图遍历算法实现
- 2015年大二上-数据结构-链表(4)-双链表算法库
- 2015年大二上-数据结构-链表(2)- 建设“单链表”算法库
- 2015年大二上-数据结构-栈(2)-链栈算法库
- 2015年大二上-数据结构-队列(2)- 链队算法库
- 2015年大二上-数据结构-串(2)- 链串算法库
- 2015年大二上-数据结构-栈(4)- 数制转换
- 2015年大二上-数据结构-队列(4)- 队列数组
- 2015年大二上-数据结构-串(4)- 字符串加密
- 2015年大二上-数据结构-内部排序-(4)-快速排序
- symfony前后台分离
- Bash Shell的使用环境
- 时间字符串进行时间加减
- Eclipse使用RecyclerView
- HTML学习笔记(一)block,inline和inline-block的概念和区别
- 2015年大二上-数据结构-图-2-(4)-Floyd算法
- SDL2.0实现触控方法,让屏幕跟随你的手指动起来
- CSS控制文本自动换行
- perl return和break
- PDF格式文件的基本编辑操作
- Nginx 隐藏服务器名称和版本号
- Cannot change version of project facet Dynamic Web Module to 3.0.
- 解决Android端升级安装后自动打开的问题
- 【bzoj3035】【codevs2490】导弹防御塔 二分+匈牙利 || 二分+dinic