理解树的特征就可。
完全二叉树的节点个数<=2^n-1;
每一层的节点数为2^(n-1);
若层次遍历存放在已0开头的数组中,第i层的开始节点下标为2^(i-1)-2,结束节点下标为2^(i)-2。

#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main(){
    vector<int> vec;
    int n,in,d;
    while(cin>>n){
        vec.clear();
        for(int i=0;i<n;i++){
            cin>>in;
            vec.push_back(in);
        }cin>>d;
        int toleval=log(n+1)/log(2);
        if(d>toleval){
            cout<<"EMPTY"<<endl;
        }else{
            int pre=pow(2,d-1)-1;
            int ed=pow(2,d)-2;
            ed=min(ed,n-1);
            for(int i=pre;i<=ed;i++){
                cout<<vec[i]<<" ";
            }cout<<endl;
        }
    } 
    return 0;
}