题目:如何判断一个二叉树是平衡二叉树
定义:
平衡二叉树(AVL):1、空二叉树是AVL树;
                                       2、如果T是一颗非空的二叉搜索树,TL和TR分别是其左子树和右子树,那么当T满足一下条件时,T是一颗AVL树:(1)TL和TR是AVL树;(2)|HL-HR|《=1,HL和HR分别是左子树和右子树的高度
示例:
算...
                            
                            
                                分类:
编程语言   时间:
2015-02-04 16:34:19   
                                阅读次数:
145
                             
                         
                    
                        
                            
                            
                                随机构建的二叉查找树的高度期望值为O(lgn),并不代表所有的二叉查找树的高度都为O(lgn)。但是对于有些二叉查找树的变形来说,动态集合各基本操作的性能却总是很好的,如红黑树、B树、平衡二叉树(AVL树)、跳跃表(确切的说不是树,或多或少有树的结构)、treaps(树堆)等。这里我们讲解红黑树。
       平衡的意思就是完成动态数据集的操作(minimum、maximum、search、p...
                            
                            
                                分类:
编程语言   时间:
2015-02-03 23:03:09   
                                阅读次数:
293
                             
                         
                    
                        
                            
                            
                                http://www.cnblogs.com/yangecnu/p/3627386.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来...
                            
                            
                                分类:
编程语言   时间:
2015-01-18 18:27:08   
                                阅读次数:
354
                             
                         
                    
                        
                            
                            
                                题目:EPI
书上的代码我认为有错。我的代码如下所示,时间复杂度为O(h),h为二叉树的高度。
//该函数不允许r和s为nullptr,且要求r、m、s三个指针互不相等
bool is_r_s_descendant_and_ancestor(shared_ptr r, shared_ptr m, shared_ptr s)
{
	if (m == nullptr || r == nul...
                            
                            
                                分类:
其他好文   时间:
2015-01-18 14:27:37   
                                阅读次数:
265
                             
                         
                    
                        
                            
                            
                                题目:Given an array where elements are sorted in ascending order, convert it to a height balanced
 BST.
思路:给出一个排序的数组,如何构造一个平衡二叉查找树?平衡二叉查找树要求任一结点的左右子树的高度差不能超过一,也叫做高度平衡树。如果让我们从一个排序数组中选取一个元素做树的根,我们会选择哪一个...
                            
                            
                                分类:
编程语言   时间:
2015-01-16 16:51:25   
                                阅读次数:
237
                             
                         
                    
                        
                            
                            
                                输入比赛人员个数 N 和你希望赢的人的编号 M,
然后输入 N * N 的输赢表,第 i 行 第 j  列为 1,代表 i 能赢 j。
求 M 最后能赢,且总比赛树的高度最小为 h 时,一共有多少种可能。
比如输入:
7 2
0 1 0 0 0 1 0
0 0 1 0 1 1 1
1 0 0 1 1 0 0
1 1 0 0 0 1 0
1 0 0 1 0 0 1
0 0 1 0...
                            
                            
                                分类:
其他好文   时间:
2015-01-15 23:54:08   
                                阅读次数:
187
                             
                         
                    
                        
                            
                            
                                红黑树是建立在二叉查找树的基础之上的,关于二叉查找树可以参看【算法导论】二叉搜索树的插入和删除和【算法导论】二叉树的前中后序非递归遍历实现。对于高度为h的二叉查找树而言,它的SEARCH、INSERT、DELETE、MINIMUM、MAXIMUM等操作的时间复杂度均为O(h)。所以在二叉查找树的高度较高时,上述操作会比较费时,而红黑树就可以解决这种问题。...
                            
                            
                                分类:
编程语言   时间:
2015-01-14 12:49:51   
                                阅读次数:
1480
                             
                         
                    
                        
                            
                            
                                一. 介绍 在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他们在196...
                            
                            
                                分类:
其他好文   时间:
2015-01-14 12:43:01   
                                阅读次数:
194
                             
                         
                    
                        
                            
                            
                                一. 二叉堆的性质 堆是一种具有堆序性的完全二叉树. 作为一种完全二叉树, (假定空树的高度是-1)它的高度是floor(logN), 高度为h的结点有2^h到2^(h+1) - 1个, 父节点的下标为floor(i/2), 左孩子的下标为2i, 右孩子的下标为2i+1 而所谓堆序性就是(以最小堆为...
                            
                            
                                分类:
其他好文   时间:
2015-01-12 09:14:35   
                                阅读次数:
133
                             
                         
                    
                        
                            
                            
                                题意:
我直接粘bzoj的黑版翻译吧~
有一排n棵树,第i棵树的高度是Di。
MHY要从第一棵树到第n棵树去找他的妹子玩。
如果MHY在第i棵树,那么他可以跳到第i+1,i+2,...,i+k棵树。
如果MHY跳到一棵不矮于当前树的树,那么他的劳累值会+1,否则不会。
为了有体力和妹子玩,MHY要最小化劳累值。
题解:
单调队列破题水,没了。
话说BZOJ的POI一向土豪...
                            
                            
                                分类:
其他好文   时间:
2015-01-08 09:38:42   
                                阅读次数:
159