用c语言建立无向图的邻接矩阵并输出
时间: 2024-12-24 21:38:29 浏览: 1
无向图的邻接矩阵存储及输出
在C语言中,可以使用二维数组来表示无向图的邻接矩阵。邻接矩阵是一个二维数组,其中每个元素a[i][j]代表节点i到节点j是否有边相连。如果节点i和节点j之间有边,那么a[i][j]通常是1或非零;如果没有边,就是0。
下面是一个简单的例子,假设我们有一个4个顶点的无向图:
```c
#include <stdio.h>
#define V 4 // 图的顶点数
// 邻接矩阵
int adjMatrix[V][V] = {
{0, 1, 0, 1}, // 0 -> 1, 0 -> 3
{1, 0, 1, 0}, // 1 -> 0, 1 -> 2
{0, 1, 0, 0}, // 2 -> 1, no edge to other nodes
{1, 0, 0, 0} // 3 -> 0
};
// 输出邻接矩阵
void printAdjMatrix() {
printf("邻接矩阵:\n");
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
if (adjMatrix[i][j] != 0)
printf("%d ", adjMatrix[i][j]);
else
printf(" ");
}
printf("\n");
}
}
int main() {
printAdjMatrix();
return 0;
}
```
当你运行这个程序,它会打印出类似这样的邻接矩阵:
```
邻接矩阵:
0 1 0 1
1 0 1 0
0 1 0 0
1 0 0 0
```
阅读全文