数据结构与算法 弗洛伊德算法多源输出带权有向图最短路径
目的与要求:
领会弗洛伊德算法求带权有向图多源最短路径的过程和算法设计。
实验设备及软件:
计算机,VC6.0
代码:
#include<stdio.h>
#include<malloc.h>
#define MAXV 100
#define INF 32767
typedef struct//定义图的头结点
{ int no;//顶点编号
}VertexType;
typedef struct//定义图的邻接矩阵
{
int edges[MAXV][MAXV];//存放路径长度的矩阵数组
int n,e; //顶点数和边数
VertexType vexs[MAXV];//头结点数组
}MatGraph;
void CreateMat(MatGraph &g,int A[MAXV][MAXV],int n,int e)..创建图的邻接矩阵
{
int i,j;
g.n=n;g.e=e;
for(i=0;i<g.n;i++)
for(j=0;j<g.n;j++)
g.edges[i][j]=A[i][j];
}
void DispMat(MatGraph g)//输出邻接矩阵
{
int i,j;
for(i=0;i<g.n;i++)
{
for(j=0;j<g.n;j++)
if(g.edges[i][j]!=INF)