考研机试 树查找
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int n,a,k;
scanf("%d",&n);
int tree[1010];
for(int i=1;i<=n;++i){
scanf("%d",&a);
tree[i]=a;
}
scanf("%d",&k);
//第k层有2^(k-1)个元素
//下标从2^(k-1)开始 到2^k-1
int min=(int)pow(2,k-1);
int max=(int)pow(2,k);
if(n>(max-1)){
for(int i=min;i<max;++i){
printf("%d ",tree[i]);
}
}else if(n<min){
printf("EMPTY\n");
}else{
for(int i=min;i<=n;++i){
printf("%d ",tree[i]);
}
}
}