#include<bits/stdc++.h>
using namespace std;
int n,a,b[100000005];
void insert(int m,int q){
if(b[q]==-1){
b[q]=m;
return;
}
else if(m>=b[q]){
insert(m,q*2+1);
}
else if(m<b[q]){
insert(m,q*2);
}
return;
}
void output(int i){
if(b[i]==-1)
return;
output(i*2);
cout<<b[i]<<' ';
output(i*2+1);
}
int main(){
cin>>n;
for(int i=1;i<=1000001;i++)
b[i]=-1;
for(int i=1;i<=n;i++){
cin>>a;
insert(a,1);
}
output(1);
return 0;
}
想用二叉排序树做,样例AC一交RE,求神犇支援!