代码展示:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define MaxSize 100
typedef struct MGraph
{
char Vex[MaxSize];//顶点表
int Edge[MaxSize][MaxSize];//邻接矩阵,边表
int vexnum;//顶点
int arcnum;//弧数
}MGraph;
void CreateMGraph(MGraph &G)
{
int v,a;
printf("请输入顶点个数:");
scanf("%d",&v);
G.vexnum = v;
getchar();
printf("请输入边的条数:");
scanf("%d",&a);
G.arcnum = a;
getchar();
for(int i=0; i<G.vexnum; i++)
{
for(int j=0; j<G.vexnum; j++)
{
G.Edge[i][j] = -1;
}
}
printf("请输入顶点:");
for(int i=0; i<v; i++)
{
scanf("%c",&G.Vex[i]);
}
getchar();
for(int i=0; i<a; i++)
{
int m,n,b;
printf("请输入构成边的两个顶点和边的权值:");
scanf("%d %d %d",&m,&n,&b);
getchar();
G.Edge[m][n] = b;
G.Edge[n][m] = G.Edge[m][n];
}
}
void PrintMGraph(MGraph G)
{
for(int i=0; i<G.vexnum; i++)
{
for(int j=0; j<G.vexnum; j++)
{
printf("%d\t",G.Edge[i][j]);
}
printf("\n");
}
}
int main() {
MGraph G;
CreateMGraph(G);
printf("\n");
PrintMGraph(G);
return 0;
}