UESTC---1559 Data Structure Problem [最大堆,最小堆,二叉搜索树]
2012-09-13 01:47
441 查看
Data Structure Problem
Time Limit: 1000 ms Memory Limit: 65536 kB Solved: 214 Tried: 795
Submit
Status
Best Solution
Back
Description
Data structure is a fundamental course of Computer Science, so that each contestant is highly likely to solve this data structure problem.A Heap data structure is a binary tree with the following properties:
1. It is a complete binary tree; that is, each level of the tree is completely filled, except possibly the bottom level. At this level, it is filled from left to right.
2. It satisfies the heap-order property: The key stored in each node is greater than or equal to the keys stored in its children.
So such a heap is sometimes called a max-heap. (Alternatively, if the comparison is reversed, the smallest element is always in the root node, which results in a min-heap.)
A binary search tree (BST), which may sometimes also be called an ordered or sorted binary tree, is a node-based binary tree data structure which has the following properties:
1. The left subtree of a node contains only nodes with keys less than (greater than) the node's key.
2. The right subtree of a node contains only nodes with keys greater than (less than) the node's key.
3. Both the left and right subtrees must also be binary search trees.
Given a complete binary tree with N keys, your task is to determine the type of it.
Note that either a max-heap or a min-heap is acceptable, and it is also acceptable for both increasing ordered BST and decreasing ordered BST.
Input
The first line of the input is T (no more than 100), which stands for the number of test cases you need to solve.For each test case, the first line contains an integer N (1 <= N <= 1000), indicating the number of keys in the binary tree. On the second line, a permutation of 1 to N is given. The key stored in root node is given by the first integer, and the 2ith and 2i+1th integers are keys in the left child and right child of the ith integer respectively.
Output
For every test case, you should output "Case #k: " first, where k indicates the case number and counts from 1. Then output the type of the binary tree:“Neither” --- It is neither a Heap nor a BST.
“Both” --- It is both a Heap and a BST.
“Heap” --- It is only a Heap.
“BST” --- It is only a BST.
Sample Input
41
1
3
1 2 3
3
2 1 3
4
2 1 3 4
Sample Output
Case #1: BothCase #2: Heap
Case #3: BST
Case #4: Neither
Source
Sichuan State Programming Contest 2011数据结构:判断最大堆,最小堆,二叉搜索树
二叉搜索树:
二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
堆:
堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆
堆分为大根堆,小根堆,大根堆就是树的根结点大于叶子结点.
完全二叉树:
完全二叉树(Complete Binary Tree)
若设二叉树的深度为h,除第 h 层外,其它各
层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
完全二叉树是由满二叉树而引出来的。对于深度为K的,有N个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
若一棵二叉树至多只有最下面的两层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。
相关文章推荐
- UESTC 483 Data Structure Problem
- UESTC 483 Data Structure Problem (二叉树)
- UESTC_秋实大哥与快餐店 2015 UESTC Training for Data Structures<Problem C>
- OpenJudge cdqz/Data Structure Challenge 2 (Problem 5822) - 可持久化线段树
- ZOJ Monthly, March 2018 - F And Another Data Structure Problem
- uestc data structure K - Sliding Window
- UESTC_秋实大哥与战争 2015 UESTC Training for Data Structures<Problem D>
- uestc data structure n 秋实大哥搞算数
- UESTC_秋实大哥与家 2015 UESTC Training for Data Structures<Problem E>
- UESTC_秋实大哥与妹纸 2015 UESTC Training for Data Structures<Problem F>
- UESTC_秋实大哥去打工 2015 UESTC Training for Data Structures<Problem G>
- ZOJ3998:Yet Another Data Structure Problem(线段树区间更新)
- UESTC_秋实大哥打游戏 2015 UESTC Training for Data Structures<Problem H>
- ZOJ Monthly, January 2018 - E Yet Another Data Structure Problem
- UESTC_秋实大哥下棋 2015 UESTC Training for Data Structures<Problem I>
- uestc data structure n 秋实大哥与快餐店
- CDOJ 483 Data Structure Problem DFS
- UESTC_Islands 2015 UESTC Training for Data Structures<Problem J>
- ZOJ4009 And Another Data Structure Problem
- UESTC_Sliding Window 2015 UESTC Training for Data Structures<Problem K>