博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1064 Complete Binary Search Tree
阅读量:5910 次
发布时间:2019-06-19

本文共 2018 字,大约阅读时间需要 6 分钟。

1064 Complete Binary Search Tree (30)(30 分)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:
  • The left subtree of a node contains only nodes with keys less than the node's key.
  • The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
  • Both the left and right subtrees must also be binary search trees.
A Complete Binary Tree (CBT) is a tree that is completely filled, with the possible exception of the bottom level, which is filled from left to right.
Now given a sequence of distinct non-negative integer keys, a unique BST can be constructed if it is required that the tree must also be a CBT. You are supposed to output the level order traversal sequence of this BST.
Input Specification:
Each input file contains one test case. For each case, the first line contains a positive integer N (<=1000). Then N distinct non-negative integer keys are given in the next line. All the numbers in a line are separated by a space and are no greater than 2000.
Output Specification:
For each test case, print in one line the level order traversal sequence of the corresponding complete binary search tree. All the numbers in a line must be separated by a space, and there must be no extra space at the end of the line.
Sample Input:
10
1 2 3 4 5 6 7 8 9 0
Sample Output:
6 3 8 1 5 7 9 0 2 4
 
题意:
给定一串非负整数序列(保证每个数都不同),构建二叉树使其满足既是二叉查找树,也是完全二叉树。输出层序序列。
 
思路:
利用完全二叉树顺序存储时的性质
 
代码:
#include 
#include
using namespace std;const int N=1010;int CBT[N],data[N];int n;void inOrderTraversal(int root){ static int cnt=1; if(root<=n){
//注意边界条件 inOrderTraversal(root*2);//左子树 CBT[root]=data[cnt++]; inOrderTraversal(root*2+1); }}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&data[i]); sort(data+1,data+n+1); inOrderTraversal(1); for(int i=1;i<=n;i++){ printf("%d",CBT[i]); if(i

 

转载于:https://www.cnblogs.com/kkmjy/p/9524629.html

你可能感兴趣的文章
[转+整理]linux shell 将字符串分割成数组
查看>>
# WinForm关闭窗体确认
查看>>
疑惑:八卦掌趟泥步到底怎样走才正确?
查看>>
java的折半查询
查看>>
Linux(RHEL7.0)下安装nginx-1.10.2
查看>>
Java NIO中的通道Channel(二)分散/聚集 Scatter/Gather
查看>>
formValidator的一些验证实例
查看>>
使用阿里云构建海外docker镜像
查看>>
idea 去掉never used 提示
查看>>
Palindrome Partitioning
查看>>
一年多了,该回来了……
查看>>
四则运算
查看>>
Qt5 for Android: incompatible ABI
查看>>
zookeeper学习
查看>>
class类名的管理
查看>>
LeetCode:Rectangle Area
查看>>
文本查询
查看>>
查看帐号授权信息
查看>>
小程序(四):模板
查看>>
【转】Java - printf
查看>>