c语言将程序实现邻接矩阵
时间: 2023-12-04 19:39:55 浏览: 72
数据结构C语言版_图的邻接矩阵存储表示和实现
5星 · 资源好评率100%
以下是C语言实现邻接矩阵的程序示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 20 // 最大顶点数
typedef struct {
int vertex[MAX_VERTEX_NUM]; // 顶点数组
int arc[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 邻接矩阵
int vexnum, arcnum; // 顶点数和边数
} MGraph;
// 创建邻接矩阵
void CreateMGraph(MGraph *G) {
int i, j, k, w;
printf("请输入顶点数和边数:");
scanf("%d%d", &G->vexnum, &G->arcnum);
printf("请输入顶点信息:");
for (i = 0; i < G->vexnum; i++) {
scanf("%d", &G->vertex[i]);
}
for (i = 0; i < G->vexnum; i++) {
for (j = 0; j < G->vexnum; j++) {
G->arc[i][j] = 0; // 初始化邻接矩阵
}
}
printf("请输入边的信息:\n");
for (k = 0; k < G->arcnum; k++) {
printf("请输入第%d条边的起点、终点和权值:", k + 1);
scanf("%d%d%d", &i, &j, &w);
G->arc[i][j] = w; // 无向图的邻接矩阵是对称的
G->arc[j][i] = w;
}
}
// 输出邻接矩阵
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.arc[i][j]);
}
printf("\n");
}
}
int main() {
MGraph G;
CreateMGraph(&G);
PrintMGraph(G);
return 0;
}
```
阅读全文