用c语言由邻接矩阵输出每个节点的入度、出度和度
时间: 2024-02-22 07:54:55 浏览: 69
好的,那么首先需要了解什么是邻接矩阵。邻接矩阵是一种表示图形的方法,它使用一个二维数组来表示图形中每个节点之间的连接关系。假设我们有一个有向图,有n个节点,那么这个图的邻接矩阵是一个n×n的矩阵,其中第i行第j列的元素表示从节点i到节点j是否有一条有向边。
下面是一个示例图和对应的邻接矩阵:
```
0 1 2 3
-------------
0 | 0 1 0 0
1 | 1 0 1 1
2 | 0 1 0 1
3 | 1 0 1 0
```
现在我们可以根据这个邻接矩阵计算每个节点的入度、出度和度。
```c
#include <stdio.h>
#define MAXN 100
int indegree[MAXN], outdegree[MAXN], degree[MAXN];
int main() {
int n;
scanf("%d", &n);
int graph[MAXN][MAXN];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &graph[i][j]);
}
}
for (int i = 0; i < n; i++) {
indegree[i] = outdegree[i] = degree[i] = 0;
for (int j = 0; j < n; j++) {
if (graph[i][j] == 1) {
outdegree[i]++;
indegree[j]++;
degree[i]++;
degree[j]++;
}
}
}
for (int i = 0; i < n; i++) {
printf("Node %d: in=%d, out=%d, degree=%d\n", i, indegree[i], outdegree[i], degree[i]);
}
return 0;
}
```
这段程序首先读入一个有n个节点的有向图的邻接矩阵,然后计算出每个节点的入度、出度和度,并输出到屏幕上。这里我们使用了三个数组来存储每个节点的入度、出度和度。在遍历邻接矩阵时,对于每个有向边(i,j),我们将节点i的出度加1,将节点j的入度加1,同时将节点i和节点j的度都加1。最后输出每个节点的入度、出度和度即可。
希望对你有所帮助!
阅读全文