图的Flord算法(图中点到点的最短距离
来源:互联网 发布:数据备份与还原 编辑:程序博客网 时间:2024/04/19 03:32
include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAXVEX 20
#define INFINY 65536
struct graph{
int numberV,numberE;
int V[MAXVEX]; //图的顶点
int E[MAXVEX][MAXVEX]; //图的边的权重
};
typedef int shortPath[MAXVEX][MAXVEX];
typedef int shortPosition[MAXVEX][MAXVEX];
//图的创建
void createGraph(graph *G)
{
G->numberV=5;
G->numberE=7;
for(int i=0;i<G->numberV;i++)
G->V[i]=i;
for(int i=0;i<G->numberV;i++) //对图进行初始化
for(int j=0;j<G->numberV;j++)
{
if(i==j)
G->E[i][j]=0;
else
G->E[i][j]=INFINY;
}
G->E[0][1]=10;
G->E[0][2]=20;
G->E[0][3]=3;
G->E[1][2]=5;
G->E[1][3]=2;
G->E[2][4]=11;
G->E[3][4]=15;
for(int i=0;i<G->numberV;i++)
for(int j=i;j<G->numberV;j++)
G->E[j][i]=G->E[i][j];
}
//图的Floyd的最短路径(即点到点的最后路径)
void shortFloyd(graph *G,shortPath *p,shortPosition *q)
{
for(int i=0;i<G->numberV;i++)
for(int j=0;j<G->numberV;j++)
{
(*q)[i][j]=j;
(*p)[i][j]=G->E[i][j];
}
for(int k=0;k<G->numberV;k++)
for(int i=0;i<G->numberV;i++)
for(int j=0;j<G->numberV;j++)
{
if((*p)[i][j]>(*p)[i][k]+(*p)[k][j])
{
(*p)[i][j]=(*p)[i][k]+(*p)[k][j];
(*q)[i][j]=(*q)[i][k];
}
}
}
int main(int argc,char**argv)
{
struct graph m;
shortPath p;
shortPosition q;
createGraph(&m);
printf("顶点数:%d\n",m.numberV);
printf("边数:%d\n",m.numberE);
shortFloyd(&m,&p,&q);
for(int i=0;i<m.numberV;i++)
for(int j=0;j<m.numberV;j++)
{
if(p[i][j]!=INFINY&&i!=j&i<j)
printf("顶点%d到顶点%d的距离是%d\n",i,j,p[i][j]);
}
return 0;
}
- 图的Flord算法(图中点到点的最短距离
- 图中点到点最短路径长度
- 计算三维空间中点到三角形平面的最短距离
- Arbitrage 最短路径的变形 flord
- 点到线段最短距离的算法
- 3种求点到线段最短距离的算法
- 点到线段的最短距离算法
- 点到线段的最短距离算法
- 点到线段的最短距离算法
- 地图上点到范围的最短距离算法
- EPON中点到点LAN 和共享LAN仿真的实现
- 计算机中点到点与端到端的区别和联系
- PTA--哈利·波特的考试--最短路径--Flord算法
- 图最短距离
- 有向图 两点间的最短距离
- 图中指定两点间的最短距离
- SimRank算法:图中点相似度的度量
- Floyd算法,求图中两个点之间的最短距离
- C#接口零度学习
- ObjC: 源文件的组织
- JDK 文档之 -- OutputStream 和 InputStream 的区别
- python rabittmq
- 可用于进程间共享的超小型多读单写锁
- 图的Flord算法(图中点到点的最短距离
- 解决 死锁 问题
- SQL SERVER做除法四舍五入
- Android之传感器系统(Gsensor)
- Labview机器视觉(6)-图像识别
- 让你提升命令行效率的 Bash 快捷键 [完整版]
- MySQL Query Cache 小结
- Silverlight 利用Telerik导出到Word
- C#调用P/Invoke显示、隐藏和移动ListView 控件中的滚动条