//用这些节点构建一棵完全二叉排序树CBT,然后层序遍历之
// 1. 完全二叉排序树CBT的数组存储与赋值
// 2. BST以及CBT的中序序列有序
// 3. 注意不能用插入的方式,因为插入的树形是随机的。
//code:
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = 2010;
int N, number[MAXN], index = 0;
int CBT[MAXN];
void inorder(int root) { //中序遍历时赋值
if(root > N) return;
inorder(root * 2);
CBT[root] = number[index ++];
inorder(root * 2 + 1);
}
int main() {
scanf("%d",&N);
for(int i=0; i<N; i++)
scanf("%d",&number[i]);
sort(number, number + N);
inorder(1);
for(int i=1; i<=N; i++) {
printf("%d",CBT[i]); //层序遍历即为顺序输出数组
if(i != N) printf(" ");
}
return 0;
}
1064 Complete Binary Search Tree (30)
最新推荐文章于 2024-08-17 18:02:02 发布