Note
- 二叉查找树
- 利用中序遍历是有序(递增)序列
- 完全二叉树用数组呈现(根结点下标从1开始)
Code
#include<bits/stdc++.h>
using namespace std;
int n,i=1;
int num[1010],ans[1010];
void inorder(int index){
if(index>n) return;
inorder(2*index);
ans[index]=num[i];
i++;
inorder(2*index+1);
}
int main(){
#ifndef ONLINE_JUDGE
freopen("data.txt","r",stdin);
#endif
cin>>n;
for(int i=1;i<=n;i++)
cin>>num[i];
sort(num+1,num+n+1);
inorder(1);
for(int i=1;i<=n;i++){
if(i!=1) printf(" ");
printf("%d",ans[i]);
}
return 0;
}