C语言建立无向图的邻接矩阵并输出
时间: 2023-12-21 17:22:00 浏览: 47
以下是C语言代码示例,用于建立无向图的邻接矩阵并输出:
```c
#include <stdio.h>
#define MAX_VERTICES 100
int adj_matrix[MAX_VERTICES][MAX_VERTICES];
int main() {
int n, m; // n: 节点数, m: 边数
scanf("%d %d", &n, &m);
// 初始化邻接矩阵
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
adj_matrix[i][j] = 0;
}
}
// 读入边信息并建立邻接矩阵
for (int i = 1; i <= m; i++) {
int u, v; // 边的两个端点
scanf("%d %d", &u, &v);
adj_matrix[u][v] = adj_matrix[v][u] = 1; // 无向图需要同时标记两个方向
}
// 输出邻接矩阵
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
printf("%d ", adj_matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
以上代码中,我们首先定义了一个100 * 100的邻接矩阵,然后读入节点数n和边数m,并使用两个for循环初始化邻接矩阵。接下来,我们读入每一条边的两个端点,并在邻接矩阵中标记这两个节点之间存在一条边。最后,我们使用两个for循环输出邻接矩阵。