构造无向图的邻接矩阵c语言代码及运行结果
时间: 2023-08-07 21:06:42 浏览: 45
以下是构造无向图邻接矩阵的 C 语言代码示例,同时附上输入和输出的运行结果:
```c
#include <stdio.h>
#define MAX_VERTICES 100
int main() {
int num_vertices; // 顶点数量
int adj_matrix[MAX_VERTICES][MAX_VERTICES]; // 邻接矩阵
int i, j;
// 输入顶点数量
printf("Enter the number of vertices: ");
scanf("%d", &num_vertices);
// 初始化邻接矩阵
for (i = 0; i < num_vertices; i++) {
for (j = 0; j < num_vertices; j++) {
adj_matrix[i][j] = 0; // 初始化为 0
}
}
// 输入边信息并更新邻接矩阵
int num_edges;
printf("Enter the number of edges: ");
scanf("%d", &num_edges);
for (i = 0; i < num_edges; i++) {
int u, v;
printf("Enter edge %d (u v): ", i + 1);
scanf("%d %d", &u, &v);
adj_matrix[u][v] = 1;
adj_matrix[v][u] = 1; // 无向图需更新对称位置
}
// 输出邻接矩阵
printf("Adjacency Matrix:\n");
for (i = 0; i < num_vertices; i++) {
for (j = 0; j < num_vertices; j++) {
printf("%d ", adj_matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
输入:
```
Enter the number of vertices: 4
Enter the number of edges: 3
Enter edge 1 (u v): 0 1
Enter edge 2 (u v): 1 2
Enter edge 3 (u v): 2 3
```
输出:
```
Adjacency Matrix:
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
```
以上输入和输出结果表示构造了一个有 4 个顶点、3 条边的无向图,并且成功地生成了对应的邻接矩阵。