1064 Complete Binary Search Tree (30 分)【难度: 一般 / 知识点: 完全二叉搜索树】
2023-09-11 14:15:52 时间
https://pintia.cn/problem-sets/994805342720868352/problems/994805407749357568
二叉搜索数的中序遍历是有序的。故先将权值排序。
然后中序建树。因为我们用数组存树就是一层层的存的。
故直接将数组输出即可。
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int tree[N],w[N],idx,n;
void build(int root)
{
if(root>n) return;
build(root*2);//建左子树
tree[root]=w[idx++];
build(root*2+1);//右子树
}
int main(void)
{
cin>>n;
for(int i=0;i<n;i++) cin>>w[i];
sort(w,w+n);
build(1);
cout<<tree[1];
for(int i=2;i<=n;i++) cout<<" "<<tree[i];
return 0;
}