#include <iostream>
#include <algorithm>
using namespace std;
const int N=1010;
int n;
int w[N],tr[N];//w存放的是输入的权值。tr存放的是树的层次遍历,也就是完全二叉树的数组存储
void inorder(int u,int &k){
if((u<<1)<=n) inorder(u<<1,k);
tr[u]=w[k++];
if(((u<<1)+1)<=n) inorder((u<<1)+1,k);
}
int main(){
cin>>n;
for(int i=0;i<=n;i=-~i) cin>>w[i];
sort(w,w+n);//排序后为中序遍历
int k=0;
inorder(1,k);
cout<<tr[1];
for(int i=2;i<=n;i=-~i) cout<<' '<<tr[i];
return 0;
}
1064 Complete Binary Search Tree (30 分)
于 2022-03-29 16:43:47 首次发布