【PAT甲级】1064 Complete Binary Search Tree (30 分)

题意:
输入一个正整数N(<=1000),接着输入N个非负整数(<=2000),输出完全二叉树的层次遍历。

代码:

#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int a[1007];
int tree[1007];
int cnt;
int n;
void dfs(int x){
if(x>n)
return;
dfs(x*2);
tree[x]=a[++cnt];
dfs(x*2+1);
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
for(int i=1;i<=n;++i)
cin>>a[i];
sort(a+1,a+1+n);
dfs(1);
cout<<tree[1];
for(int i=2;i<=n;++i)
cout<<" "<<tree[i];
return 0;
}

猜你喜欢

转载自www.cnblogs.com/ldudxy/p/11762715.html