c语言用邻接矩阵表示图
时间: 2023-10-23 11:58:46 浏览: 93
邻接矩阵是一种用于表示图的数据结构,可以用C语言来实现。在邻接矩阵中,每个节点都有一个与之对应的行和列。如果两个节点之间有一条边,则在它们对应的行和列中的交叉点上,标记为1或者边的权重。如果两个节点之间没有边,则在对应的交叉点上标记为0或者无穷大。
下面是一个用C语言实现邻接矩阵表示图的简单示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 50
int adj_matrix[MAX_VERTICES][MAX_VERTICES];
void add_edge(int u, int v) {
adj_matrix[u][v] = 1;
adj_matrix[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);
add_edge(u, v);
}
// 打印邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", adj_matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个示例代码中,我们定义了一个 `adj_matrix` 数组来表示邻接矩阵。我们也定义了一个 `add_edge` 函数来给两个节点之间添加边。在主函数中,我们先输入了图的节点数和边数,然后逐个输入每条边的两个节点,并调用 `add_edge` 函数来添加边。最后,我们打印邻接矩阵来检查它是否正确地表示了图的结构。
阅读全文