北邮OJ 133 二叉树的层数

北邮OJ 二叉树的层数

在这里插入图片描述
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef struct node{
	int lchild,rchild,deep;
}Node;
int max(int x,int y){
	return (x>y)?x:y;
}
int main(){
	int t,i=1;
	Node node[101];
	scanf("%d",&t);
	while(t--){
		int N,M;
		scanf("%d%d",&N,&M);
			for(int j=1;j<=M;j++){
				node[j].deep=0;
				node[j].lchild=-1;
				node[j].rchild=-1;
			}
			int a,b,Max=0;
			node[1].deep=1;
			for(int j=1;j<=N;j++){
				scanf("%d%d",&a,&b);
				if(node[j].lchild==-1)
					node[j].lchild=a;
				else
					node[j].rchild=a;
				node[a].deep=node[b].deep+1;
				if(node[a].deep>Max)Max=node[a].deep;
			}
			printf("Q%d:\n",i);
			i++;
			int flag;
			for(int k=1;k<=Max;k++){
				flag=0;
				for(int j=1;j<=M;j++){
					if(flag&&node[j].deep==k)
						printf(" ");
					if(node[j].deep==k){
						printf("%d",j);
						flag=1;
					}
				}
				printf("\n");
			}
	}
} 

猜你喜欢

转载自blog.csdn.net/bingkuoluo_/article/details/88813687