实验内容(1)每个节点的入度、出度和度 设是一个有向图,它有n个节点,则n阶方阵称为G的邻接矩阵,其中 邻接矩阵的第i列元素之和为vi的入度;第j行元素之和为vj的出度。由邻接矩阵输出每个节点的入度、出度和度。c语言编写
时间: 2023-12-14 08:36:04 浏览: 85
以下是C语言代码实现:
```
#include <stdio.h>
#define MAX_SIZE 100 // 最大节点数目
int main() {
int n; // 节点数
int adjMatrix[MAX_SIZE][MAX_SIZE]; // 邻接矩阵
int inDegree[MAX_SIZE], outDegree[MAX_SIZE], degree[MAX_SIZE]; // 入度、出度和度
printf("请输入节点数:");
scanf("%d", &n);
printf("请输入邻接矩阵:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &adjMatrix[i][j]);
}
}
// 计算每个节点的入度、出度和度
for (int i = 0; i < n; i++) {
inDegree[i] = 0;
outDegree[i] = 0;
degree[i] = 0;
for (int j = 0; j < n; j++) {
if (adjMatrix[j][i] == 1) { // 计算入度
inDegree[i]++;
}
if (adjMatrix[i][j] == 1) { // 计算出度
outDegree[i]++;
}
}
degree[i] = inDegree[i] + outDegree[i]; // 计算度
}
// 输出每个节点的入度、出度和度
printf("每个节点的入度、出度和度分别为:\n");
for (int i = 0; i < n; i++) {
printf("节点%d:入度:%d,出度:%d,度:%d\n", i + 1, inDegree[i], outDegree[i], degree[i]);
}
return 0;
}
```
运行程序后,输入节点数和邻接矩阵,即可输出每个节点的入度、出度和度。
阅读全文