邻接矩阵就是在图中如果存在边的话就把矩阵相应位置的值设置为权值无权图设置为1
#include<stdio.h>
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];//顶点数组
int arc[MAXSIZE][MAXSIZE];//邻接矩阵
int vexnum, edgenum;//当前的定点数和边数
}MGraph;
void CreateMgrapg(MGraph *p)
{
int i, j, k, w;
printf("输入定点数和边数\n");
scanf("%d%d", &p->vexnum, &p->edgenum);
getchar();
for (i = 0; i < p->vexnum; i++)
{
printf("输入第%d个顶点的信息\n",i+1);
scanf("%d", &p->data[i]);
}
for (i = 0; i < p->vexnum; i++)
{
for (k = 0; k < p->vexnum; k++)
{
p->arc[i][k] = 0;
}
}
for (k = 0; k < p->edgenum; k++)
{
printf("输入有关系的两个顶点\n");
scanf("%d%d%d", &i, &j, &w);
p->arc[i-1][j-1] = w;
p->arc[j-1][i-1] = w;
}
}
void print(MGraph g)
{
int i, j;
for (i = 0; i < g.vexnum; i++)
{
for (j = 0; j < g.vexnum; j++)
{
printf("%-10d", g.arc[i][j]);
}
printf("\n");
}
}
int main()
{
MGraph g;
CreateMgrapg(&g);
print(g);
}