c语言无向图的邻接矩阵储存
时间: 2023-10-18 08:27:12 浏览: 106
C语言中,可以通过二维数组来实现无向图的邻接矩阵储存。具体实现方法如下:
1.定义一个二维数组,用于存储邻接矩阵,数组大小为n * n,其中n为图中节点的数量。
```
int graph[n][n];
```
2.初始化邻接矩阵,将所有元素的值都设为0,表示两个节点之间没有边。
```
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
graph[i][j] = 0;
}
}
```
3.为有边相连的节点在邻接矩阵中标记为1,表示两个节点之间有边。
```
graph[i][j] = 1;
graph[j][i] = 1;
```
完整的代码实现如下:
```
#include <stdio.h>
#define n 5 // 节点数量
int main(){
int graph[n][n]; // 邻接矩阵
// 初始化邻接矩阵
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
graph[i][j] = 0;
}
}
// 添加边
graph[0][1] = 1;
graph[1][0] = 1;
graph[0][2] = 1;
graph[2][0] = 1;
graph[1][2] = 1;
graph[2][1] = 1;
graph[1][3] = 1;
graph[3][1] = 1;
graph[2][4] = 1;
graph[4][2] = 1;
// 输出邻接矩阵
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
阅读全文