用C语言写一段代码,用邻接矩阵存储对图进行建立操作
时间: 2023-11-27 12:53:22 浏览: 66
假设我们要建立一个有n个节点的无向图,以下是用邻接矩阵存储并建立该图的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100 // 最大节点数
int graph[MAX_N][MAX_N]; // 邻接矩阵
void addEdge(int u, int v) {
graph[u][v] = 1; // 在邻接矩阵中标记边
graph[v][u] = 1; // 无向图需要标记两次
}
int main() {
int n, m; // n为节点数,m为边数
scanf("%d%d", &n, &m);
for (int i = 0; i < m; i++) {
int u, v;
scanf("%d%d", &u, &v);
addEdge(u, v); // 添加边
}
// 打印邻接矩阵
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个代码中,我们使用一个二维数组 `graph` 来存储邻接矩阵,其中 `graph[i][j]` 表示i和j之间是否存在边,如果存在就是1,否则是0。`addEdge` 函数用于添加边,它会将 `graph[u][v]` 和 `graph[v][u]` 设为1,表示u和v之间存在边。最后,我们打印邻接矩阵,以检查图是否被正确地建立。
阅读全文