题意:给定序列,要求输出对应完全二叉搜索树的层序遍历
tip:直接对原数组利用完全二叉搜索树性质遍历输出
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int n;
int s[1003];
vector<int>level(1003);
int c=0;
void dfs(int t) {
if(t>=n)
return ;
dfs(2*t+1);
level[t]=s[c++];
dfs(2*t+2);
}
int main() {
cin>>n;
for(int i=0; i<n; ++i)
cin>>s[i];
sort(s,s+n);
dfs(0);
cout<<level[0];
for(int i=1; i<n; ++i)
cout<<" "<<level[i];
return 0;
}