C语言实现键盘输入信息,输出无向图各顶点的度和邻接矩阵
时间: 2024-04-06 20:34:39 浏览: 62
好的,我可以帮你解答这个问题。
首先,你需要了解无向图的定义和性质。无向图是由一些点和它们之间的边组成的,其中每条边连接两个不同的点。每个点都有一个度数,表示与该点相连的边的数量。
邻接矩阵是一种表示无向图的方式,它是一个 n × n 的矩阵,其中 n 是图中点的数量。如果两个点之间有边相连,则在矩阵中对应的元素为 1,否则为 0。
下面是一个实现键盘输入信息,输出无向图各顶点的度和邻接矩阵的 C 语言代码示例:
```c
#include <stdio.h>
#define MAX_N 100
int main() {
int n, m;
int degree[MAX_N] = {0};
int matrix[MAX_N][MAX_N] = {0};
// 读入点数和边数
scanf("%d %d", &n, &m);
// 读入每条边,更新度数和邻接矩阵
for (int i = 0; i < m; i++) {
int u, v;
scanf("%d %d", &u, &v);
degree[u]++;
degree[v]++;
matrix[u][v] = matrix[v][u] = 1;
}
// 输出各点的度数
printf("Degrees:\n");
for (int i = 1; i <= n; i++) {
printf("%d ", degree[i]);
}
printf("\n");
// 输出邻接矩阵
printf("Adjacency matrix:\n");
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个代码中,我们首先读入点数和边数,然后读入每条边,更新度数和邻接矩阵。最后输出各点的度数和邻接矩阵。
注意,这个代码中假设点的编号从 1 开始,如果你的无向图点的编号从 0 开始,那么需要对代码进行一些修改。
阅读全文