1. 程式人生 > >pat1064 Complete Binary Search Tree

pat1064 Complete Binary Search Tree

#include<cstdio>
#include<vector>
#include<algorithm>
#include<queue>
#define N 1005
using namespace std;
int a[N],data[N];
int pos,n;
queue<int>q;
void dfs(int u)
{
	if(u*2<=n)dfs(2*u);
	data[u] = a[++pos];
	if(u*2+1<=n)dfs(u*2+1);
}
int main()
{
	while(scanf("%d",&n)!=EOF)
	{
		for(int i = 1;i<=n;i++)scanf("%d",&a[i]);
		sort(a+1,a+n+1);
		dfs(1);
		for(int i = 1;i<n;i++)printf("%d ",data[i]);
		printf("%d\n",data[n]);
	}
    return 0;
}