题目
思路
- 多叉树,不是二叉树;
- 家族中最多不超过100个成员,可以不使用循环队列,直接开数组;
- 使用last,指向每一层的最后一个结点,每当last==front时,输出该层的叶子结点数,并将count清零,last=rear,即指向下一层的最后一个结点
- 第三步必须放在入队操作之后,否则无法保证rear指向front的下一层(除非最后一层)(这一步吃了大亏)
测试点
- 第一个和最后一个测试点中有一个是处理给的例子
- 第三个测试点处理 N为1M为0的情况(0<N<100),这时候就不要再有输入操作了,输出1即可
- 剩下两个测试点用最一般的情况试
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct treenode {
char ID[3];
int K;
struct treenode **children;
}TNode;
TNode *CreateTree(void);
void bfs_tree(TNode *root);
int main()
{
TNode *root = CreateTree();
bfs_tree(root);
return 0;
}
TNode *CreateTree(void)
{
int i, j, N, M;
int num, num_c;
int