FLOYD算法之简单版
来源:互联网 发布:李泉 走西口走红网络 编辑:程序博客网 时间:2024/05/02 06:10
所谓简单版,是功能还不完全,只是一个雏形,呵呵,不过也得贴出来, 我这里内容太少了~!!
#include<iostream.h>
#include<cstdlib>
#define vex 3//定义结点的个数
#define MAX 32767//设定一个极大值
typedef struct{
char p[128];
}paths;
void Ppath1(int i,int j,paths path[vex][vex]){
if(i!=j){
int n=0;
path[i][j].p[n++]=i+65;
path[i][j].p[n++]=j+65;
path[i][j].p[n]='/0';
}
}
void Ppath(int i,int j,int k,paths path[vex][vex]){
if(i!=j){
int n=0;
path[i][j].p[n++]=i+65;
path[i][j].p[n++]=k+65;
path[i][j].p[n++]=j+65;
path[i][j].p[n]='/0';}
}
/*
0 4 11
6 0 2
3 -1 0
*/
void floyd(paths path[vex][vex],int v[vex][vex]){
for(int i=0;i<vex;i++)
for(int j=0;j<vex;j++)
Ppath1(i,j,path);
for(int k=0;k<vex;k++){
for(i=0;i<vex;i++)
for(int j=0;j<vex;j++)
if(v[i][j]>v[i][k]+v[k][j]){
v[i][j]=v[i][k]+v[k][j];
Ppath(i,j,k,path);
}
}
}
void main(){
int v[vex][vex]={{0,4,11},{6,0,2},{3,MAX,0}},i,j,k;
paths path[vex][vex];
cout<<"邻接矩阵如下:"<<endl;
for(i=0;i<vex;i++){
for(j=0;j<vex;j++)
cout<<v[i][j]<<" ";
cout<<endl;
}
floyd(path,v);
cout<<"最短路径如下:"<<endl;
for(i=0;i<vex;i++){
for(j=0;j<vex;j++)
cout<<v[i][j]<<" ";
cout<<endl;
}
cout<<"具体路径如下:"<<endl;
for(i=0;i<vex;i++)
for(j=0;j<vex;j++)
if(i!=j)
cout<<i<<" "<<j<<" "<<path[i][j].p<<endl;
}
原来写进来的代码有问题,本来调试过了,但是弄进来的时候搞错了,看来没有人来关注啊,可怜的博客!!!
- FLOYD算法之简单版
- poj_1125 Floyd算法简单应用
- 最短路之Floyd算法
- 最短路算法之Floyd
- 最短路之Floyd算法
- 多源最短路径之Floyd算法
- DP之Warshall算法和Floyd算法
- 求最短路径算法之Floyd算法
- 最短路算法之Floyd算法
- 项目 4 - 验证算法之Floyd算法
- 算法储备之Floyd Warshall算法
- 最短路径之Dijkstra+Floyd算法
- 求最短路径之——Floyd算法
- 最短路径之Floyd算法
- 最短路径之Floyd-Warshell算法
- 最短路径之Floyd算法
- 最短路径之Floyd-Warshell算法
- 最短路径之弗洛伊德算法(Floyd)
- 养龟小记之小龟逃跑
- 如何识别皮具的真伪
- NativeXML数据库技术详解
- Tomcat启动分析
- 关键技术实现,整体架构确定
- FLOYD算法之简单版
- 在ASP.NET中插入flash
- 决定以后给WF写亲笔信
- jsp内置对象
- 计算机专业学生应该学什么 【转】--霍炬先生原创
- 经济学和金融学研究方法和前沿研究课题(经济研究!不多说了)
- 从ACM会议看中国大陆计算机科学与国外的差距
- 大学经典话语
- 关于WebService的介绍