#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#define MAXVEX 100//最大顶点数
typedef struct
{
int vexs[MAXVEX];//存储顶点的数组
int matrix[MAXVEX][MAXVEX];//存储邻接矩阵的二维数组
int vexnum, edgenum;//顶点数+边数
}MGraph;
//创建有向图的邻接矩阵
void CreateMGraph(MGraph* G)
{
int i, j, k, w;
printf("请输入顶点数和边数\n");
scanf("%d%d", &G->vexnum, &G->edgenum);
printf("请输入顶点信息\n");
//数组顶点信息(结点)
for (i = 0; i < G->vexnum; i++)
{
scanf("%d", &G->vexs[i]);
}
//初始化邻接矩阵的二维数组
for (i = 0; i < G->vexnum; i++)
{
for (j = 0; j < G->vexnum; j++)
{
G->matrix[i][j] = 0;
}
}
printf("请输入边的信息\n");
for (k = 0; k < G->edgenum; k++)
{
printf("请输入边(vi,vj)的下标i,下标j\n");
scanf("%d%d", &i, &j);
G->matrix[i][j] = 1;
}
}
//打印
void printMGraph(MGraph G)
{
int i, j;
printf("邻接矩阵为\n");
for (i = 0; i < G.vexnum; i++)
{
for (j = 0; j < G.vexnum; j++)
{
printf("%d ", G.matrix[i][j]);
}
printf("\n");
}
}
int main()
{
MGraph G;
CreateMGraph(&G);
printMGraph(G);
return 0;
}