使用C语言进行 建立无向图的邻接矩阵存储并输出
时间: 2024-05-04 09:21:10 浏览: 146
建立无向图的邻接矩阵存储可以使用二维数组来实现,其中第i行第j列的元素表示节点i和节点j之间是否有边相连。如果有,则该元素的值为1,否则为0。以下是一个简单的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int n, m; // n表示节点数,m表示边数
int i, j, u, v;
int graph[MAX_SIZE][MAX_SIZE] = {0}; // 初始化邻接矩阵,全部置为0
printf("请输入节点数n和边数m(以空格分隔):");
scanf("%d %d", &n, &m);
printf("请输入每条边的两个端点(以空格分隔):\n");
for (i = 0; i < m; i++) {
scanf("%d %d", &u, &v);
graph[u][v] = graph[v][u] = 1; // 无向图,两个方向都要设置为1
}
printf("邻接矩阵如下:\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
需要注意的是,这里假设节点编号从1开始,因此邻接矩阵的第一行和第一列都没有用到,全部置为0。如果节点编号从0开始,则需要将邻接矩阵的大小设为n+1,同时将循环的范围改为0到n。
阅读全文