题意
给定一串数字,构造完全二叉搜索树
源码
#include<cstring>
#include<algorithm>
#define arrInit(a,b) memset(a,b,sizeof(b))
using namespace std;
int output[1005];
int input[1005];
static int k=0;
int n;
void build_CBT(int pos){
if(pos>=n){
return;
}else{
build_CBT(pos*2+1);
output[pos]=input[k++];
build_CBT(pos*2+2);
}
}
int main(){
arrInit(input,0);
arrInit(output,0);
cin>>n;
for(int i=0;i<n;i++) cin>>input[i];
sort(input,input+n);
build_CBT(0);
int temp=n;
for(int i=0;i<n;i++){
if(temp!=1) cout<<output[i]<<" ";
else cout<<output[i]<<endl;
temp--;
}
}