7-10 完全二叉搜索树 (30 分)
一个无重复的非负整数序列,必定对应唯一的一棵形状为完全二叉树的二叉搜索树。本题就要求你输出这棵树的层序遍历序列。
输入格式:
首先第一行给出一个正整数 N(≤1000),随后第二行给出 N 个不重复的非负整数。数字间以空格分隔,所有数字不超过 2000。
输出格式:
在一行中输出这棵树的层序遍历序列。数字间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:
10
1 2 3 4 5 6 7 8 9 0
输出样例:
6 3 8 1 5 7 9 0 2 4
解题思路:
- 完全二叉树,使用顺序结构来存储更加容易操作。
- 搜索二叉树,中序遍历为从小到大的有序遍历。
- 构造完全搜索二叉树,在完全二叉树的非递归中序遍历中,给二叉树赋值。
- 使输入数据从小到大排列,对应赋值即可创建完全搜索二叉树。
#include<iostream>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
struct Tree
{
int* data;
};
int main