c语言实现邻接矩阵创建无向图
时间: 2023-10-15 21:04:02 浏览: 143
邻接矩阵无向图
以下是用 C 语言实现邻接矩阵创建无向图的基本代码:
```c
#include <stdio.h>
#define MAXV 100 // 最大顶点数
typedef struct {
int edges[MAXV][MAXV]; // 邻接矩阵
int n; // 顶点数
} Graph;
// 创建无向图
void createGraph(Graph *G) {
int i, j, k;
printf("请输入顶点数:");
scanf("%d", &G->n);
printf("请依次输入每条边所连接的两个顶点,以空格分隔(例如:1 2)\n");
while (1) {
scanf("%d %d", &i, &j);
if (i == 0 && j == 0) {
break;
}
G->edges[i][j] = 1;
G->edges[j][i] = 1;
}
}
int main() {
Graph G;
createGraph(&G);
printf("邻接矩阵:\n");
for (int i = 1; i <= G.n; i++) {
for (int j = 1; j <= G.n; j++) {
printf("%d ", G.edges[i][j]);
}
printf("\n");
}
return 0;
}
```
其中,`Graph` 结构体定义了一个邻接矩阵表示的图,其中 `n` 表示顶点数,`edges` 是一个二维数组,表示每条边的连接情况。`createGraph` 函数用于创建无向图,通过用户输入每条边所连接的两个顶点,并将其在邻接矩阵中标记为 1。最后,遍历邻接矩阵,将其输出以展示创建出的无向图。
阅读全文