PAT上树的遍历的题目好像都是差不多,书上几道题目写下来都是一次AC,没花多少时间。 这题需要在结点结构体中增加层数变量,通过BFS搜索一遍,每发现一个结点是叶子结点,则将该层的哈希数组的值加1,最后记录下最大的层数,然后依次输出哈希数组的值即可。
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
int n, m;
int hashtable[110] = {
0};
int maxlayer;
struct Node{
vector<int> child;
int layer;
}node[110];
void BFS(int index){
queue<int> q;
q.push(index);
node[index].layer = 1;
while(!q.empty()){
int temp = q.front();
q.pop();
if(node[temp].child.