题目:判断是否为完全m元树 问题描述 输入一棵有向树的邻接矩阵,判断它是否为完全m元树,如果是,则输出“Y”和m值,否则输出“N”。 输入格式 输入有向树的邻接矩阵A 输出格式 如果是完全m元树,则输出“Y”和m值,并用空格隔开,否则输出“N”。Dev-c++5.11c语言代码实现
时间: 2024-02-25 12:58:17 浏览: 124
以下是C语言代码实现:
```c
#include <stdio.h>
#define MAXN 100
int main()
{
int A[MAXN][MAXN], n, m;
scanf("%d", &n); // 输入节点数
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
scanf("%d", &A[i][j]); // 输入邻接矩阵
int flag = 1;
for (int i = 0; i < n; i++)
{
int cnt = 0; // 计算每个节点的出度
for (int j = 0; j < n; j++)
if (A[i][j])
cnt++;
if (i == 0)
m = cnt; // 保存第一个节点的出度
else if (cnt != m) // 如果出度不同,则不是完全m元树
{
flag = 0;
break;
}
}
if (flag)
printf("Y %d\n", m);
else
printf("N\n");
return 0;
}
```
注意事项:
1. 输入格式中没有说明节点数,需要单独输入。
2. 需要保存第一个节点的出度,用于和后面的出度比较。
3. 如果存在某个节点的出度和第一个节点的出度不同,则不是完全m元树。
阅读全文