题目描述
有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。
输入
输入有多组数据。
每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。
输出
输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。
样例输入
5
1 2 3 4 5
7
7
1 2 3 4 5 6 7
2
0
样例输出
EMPTY
2 3
提示
#include <cstdio>
const int maxn=1005;
int s[maxn];
int main(){
int n;
while(scanf("%d",&n)==1&&n){
for(int i=1;i<=n;i++) scanf("%d",&s[i]);
int d;
scanf("%d",&d);
if((1<<d-1)>n) printf("EMPTY\n");
else if((1<<d)-1<=n){
for(int i=(1<<d-1);i<=(1<<d)-1;i++){
printf("%d",s[i]);
if(i<(1<<d)-1) printf(" ");
else printf("\n");
}
}
else{
for(int i=(1<<d-1);i<=n;i++){
printf("%d",s[i]);
if(i<n) printf(" ");
else printf("\n");
}
}
}
return 0;
}