用c语言实现邻接矩阵
时间: 2024-10-07 11:00:21 浏览: 34
在C语言中,邻接矩阵是一种常用的表示图的数据结构,它通过二维数组来存储图中各个顶点之间的连接情况。对于无向图,邻接矩阵通常是布尔类型的,值为`true`表示两个顶点之间有边,值为`false`则表示没有边。
以下是简单的邻接矩阵实现步骤:
```c
#include <stdio.h>
#define V 4 // 图中顶点的数量
// 邻接矩阵
int adj[V][V] = {0}; // 初始化所有元素为0,代表没有边
// 添加边到邻接矩阵
void addEdge(int v, int w) {
adj[v][w] = 1; // 如果从v到w有一条边,则对应的矩阵位置设为1
adj[w][v] = 1; // 对于无向图,需要同时设置从w到v的位置
}
// 主函数示例,打印邻接矩阵
void printMatrix() {
printf("邻接矩阵:\n");
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
if (adj[i][j])
printf("%d ", i + 1); // 表达式i+1用于打印数字而不是索引
else
printf("-\t"); // 无边时显示 "-"
}
printf("\n");
}
}
int main() {
// 添加边示例
addEdge(0, 1);
addEdge(0, 2);
addEdge(1, 2);
// 打印结果
printMatrix();
return 0;
}
```
阅读全文