Floyd算法模板
来源:互联网 发布:全篇翻译软件 编辑:程序博客网 时间:2024/06/05 08:32
void Floyd()
{
int A[MAXV][MAXV],path[MAXV][MAXV];
int i,j,k,n;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&A[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i!=j&&A[i][j]<INF)
path[i][j]=i;
else path[i][j]=-1;
}
}
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(A[i][j]>(A[i][k]+A[k][j]))
{
A[i][j]=A[i][k]+A[k][j];
path[i][j]=path[k][j];//修改最短路径,使它等于最后的那个
}
}
}
//Dispath(A,path,n)
}
void Dispath(int A[][MAXV],int path[][MAXV],int n)
{
int i,j,k,s;
int apath[MAXV],d;//存放最短路径及中间顶点的个数
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(A[i][j]!=INF&&i!=j)
{
printf("从%d到%d的最短路径为",i,j);
k=path[i][j];
d=0;
apath[d]=j;
while(k!-1&&k!=i)
{
d++;
apath[d]=k;
k=path[i][k];
}
d++;
apath[d]=i;
printf("%d",apath[d]);
for(s=d-1;s>=0;s--)
printf(",%d",apath[s]);
printf("\t路径长度为:%d\n",A[i][j]);
}
}
}
0 0
- toj2033 floyd算法 模板
- Floyd算法模板
- Floyd算法模板
- floyd算法模板
- floyd算法模板
- Floyd算法模板
- Floyd算法模板
- Floyd-Warshall算法模板
- Floyd算法---模板
- floyd算法模板--打印路径
- 【Eternallyc】模板题-Floyd算法
- Floyd(弗洛伊德)算法 详解+模板
- 最短路径Floyd算法模板
- 最短路(floyd算法)模板
- 图论---POJ 3660 floyd 算法(模板题)
- HDU 2544 --floyd-Warshall算法模板
- ACM模板——Floyd算法
- 最短路径算法模板:Dijkstra/Floyd/Bellman-Ford模板
- JS中的bind方法学习
- 【opencv练习14 - 模糊图像 】
- 第二章 预备知识
- JavaBean总结
- Android日常开发总结的技术经验60条
- Floyd算法模板
- Qt 自定义信号与槽
- 拓扑排序——有向无环图(湖南省第十二届大学生计算机程序设计竞赛 B)
- Android 开发中一些你不知道但很有用的类和方法
- BZOJ 3676 & UOJ 103 [Apio2014]回文串
- 关于myeclipse 10 新建Filter,listener接口的问题
- C#中的俄罗斯方块
- Python3.x和Python2.x的区别
- POJ 2081——Recaman's Sequence