set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、...
分类:
编程语言 时间:
2015-08-25 21:14:24
阅读次数:
191
题目链接:点击打开链接
解题思路:
1、首先对x和高度h分别从小到大排序记录排名
2、然后对高度h按从大到小排序(保证当前要计算的树的高度是所有已经遍历的树中最小高度,便于计算S=min(h1,h2))
3、循环遍历数组,每次遍历向树状数组C中t[i].rx位置增加t[i].rx,向树状数组C1中t[i].rx位置增加1
解析:C记录排名和,C1记录个数
所以以t[i].rh为...
分类:
编程语言 时间:
2015-08-21 11:23:39
阅读次数:
221
1,B树的基本介绍①B树,相比于二叉树、红黑树而言,它的特点就是树的高度比其他类型的树要低很多。如何做到低呢?B树中的每个结点的分支数目非常大,即每个结点有很多很多孩子结点。这样,在相同结点数目情况下,B树就比其他树的高度低了。②B树,是针对磁盘(外存)而设计的数据结构。由于内存有限,巨大量的数据还...
分类:
其他好文 时间:
2015-08-19 12:39:20
阅读次数:
137
【题目大意】教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。 教主最喜欢3种树,这3种树的高度分别为10,20,30。教主希望这一圈树种得有层次感,所以任何一个位置的树要比它相邻的两棵树...
分类:
其他好文 时间:
2015-08-17 13:43:15
阅读次数:
119
AVL是一种平衡二叉树,它通过对二叉搜索树中的节点进行旋转使得二叉搜索树达到平衡。AVL在所有的平衡二叉搜索树中具有最高的平衡性。定义平衡二叉树或者为空树或者为满足如下性质的二叉搜索树:左右子树的高度之差绝对值不超过1左右子树仍然为平衡二叉树定义平衡因子 BF(x) = x的左子树高度 - x的右子...
分类:
其他好文 时间:
2015-08-10 17:30:00
阅读次数:
86
Treap是一种弱平衡二叉查找树,通过给每个节点赋优先值以及必要时进行节点的旋转来避免一般的二叉查找树退化成一条链,从而具有良好的时间性能。Treap实现将二叉查找树的高度值期望达到O(log2n),这条性质由定理将一组数据以随机的顺序插入一棵二叉查找树中,树的高度期望为O(log2n)得以保证。T...
分类:
其他好文 时间:
2015-08-09 17:05:10
阅读次数:
120
题目链接 题意: n个树,在x1,x2,。。。,xn的位置,树的高度依次是h1,h2,。。。,hn 求的是当把树砍倒时候,不占用相邻树的位置,最大砍树个数 可向左 向右砍,即树向左向右倒,很显然 当树的棵树大于1的时候,一定至少可以砍倒两棵树,位于最左和最右的两棵树可以直接砍倒 可以先考虑左砍树,再...
分类:
其他好文 时间:
2015-08-09 01:42:40
阅读次数:
154
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode*root,请返回一个bool,代表这棵树是否平衡。import java.util.*;/*public class TreeNode { int ...
分类:
其他好文 时间:
2015-08-06 10:38:32
阅读次数:
249
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、...
分类:
编程语言 时间:
2015-08-05 12:02:25
阅读次数:
151
1.二叉树:树中的任何节点的值大于它的左子节点,且小于它的右子节点。2.平衡二叉树:一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。3.红黑树:节点是红色或者黑色的平衡二叉树,它通过颜色的约束来维持着二叉树的平衡。规则:每个节点都只能是红色或者黑色;根节点是黑...
分类:
其他好文 时间:
2015-08-04 08:09:11
阅读次数:
146