输入一棵有向树的邻接矩阵,判断它是否为完全m元树,如果是,则输出“Y”和m值,否则输出“N”。自己输入数据,用C语言来实现
时间: 2024-03-03 18:47:29 浏览: 21
以下是可以实现该功能的C语言代码。
```c
#include <stdio.h>
#define MAX 100
int main() {
int n, m, flag = 1;
int adj[MAX][MAX] = {0};
printf("请输入有向树的节点数n和度数m:");
scanf("%d %d", &n, &m);
printf("请输入有向树的邻接矩阵:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &adj[i][j]);
}
}
for (int i = 0; i < n; i++) {
int degree = 0;
for (int j = 0; j < n; j++) {
if (adj[i][j] == 1) degree++;
}
if (degree != m && degree != 1) {
flag = 0;
break;
}
}
if (flag) {
printf("Y %d", m);
} else {
printf("N");
}
return 0;
}
```
代码实现思路:
1. 读入节点数n和度数m以及邻接矩阵adj。
2. 对于每个节点,计算其度数,如果不是m或1,则说明不是完全m元树,将flag标记为0。
3. 如果flag仍为1,则说明是完全m元树,输出“Y”和m值,否则输出“N”。