实现了一下弗洛伊德算法 在相应的代码处做了标记
#include <stdio.h>
#include<iostream>
#define MaxVertexNum 100
#define INF 32767
using namespace std;
typedef struct
{
char vertex[MaxVertexNum];//顶点数组
int edges[MaxVertexNum][MaxVertexNum];//邻接矩阵
int n,e;
}MGraph;
void CreateMGraph(MGraph &G)
{
int i,j,k,p;
cout<<"请输入顶点数和边数:";
cin>>G.n>>G.e; //n为顶点数
cout<<"请输入顶点元素:";
for (i=0;i<G.n;i++)
{
cin>>G.vertex[i]; //输入顶点信息
}
for (i=0;i<G.n;i++)
{
for (j=0;j<G.n;j++)
{
G.edges[i][j]=INF; //初始化边的权值信息 初始化的时候都将其设置为最大值状态
if (i==j)
{
G.edges[i][j]=0; //对角线元素设置为0
}
}
}
for (k=0;k<G.e;k++)
{
cout<<"请输入第"<<k+1<<"条弧头