注意:
1 判断一个节点是否平衡的方法
2 平衡一个节点的方法 :
我这里比原文改进一点,独立出一个平衡节点的函数balanceNode(),这样一个函数可以用来平衡插入和删除操作,使得代码更加简洁了。
这样修改之后就使得平衡二叉树好像和一般二叉树的操作比较,就是多了一个平衡操作。
3 删除操作情况很多,很困难,一定要理清思路。十分容易出bug的地方。
这里是查找后继节点的值,填补上到...
分类:
其他好文 时间:
2014-06-05 05:16:45
阅读次数:
261
AVL可以保证搜索达到O(lgn)的时间效率,因为两边的树高都差不多。不会出现搜索是线性的最坏情况。
但是AVL在插入和删除节点的时候需要做较多的旋转操作,所以如果修改节点多的时候,最好使用红黑树,但是如果搜索多的时候,就最好使用AVL了。...
分类:
其他好文 时间:
2014-06-05 02:08:26
阅读次数:
310
1. 红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。
红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不平衡都会在三次旋转之内解决。当然,还有一些更好的,但实现起来更复杂的数据结构,能够做到一步旋转之内达到平衡,但红黑树能够给我们一个比较“便宜”的解决方案。红黑树的算法时间复杂度和AVL相同,但统...
分类:
其他好文 时间:
2014-06-05 01:44:35
阅读次数:
232
介绍:二叉排序树是以一定的规则排列树中元素,因而可以进行快速的排序和查询的树状数据结构,一般规则是:对于树中任意一个节点,左孩子严格小于根,根严格小于右孩子,有点像大根堆。(只是大根堆中左右孩子关系并不确定,且和根的关系是统一的,而且有上浮和下沉操作使得大根堆总是一棵完全二叉树,其不断弹出堆顶形成有序列的过程叫做堆排序。虽然二叉排序树中也有旋转操作使得树尽量平衡,但是由于数值大小分明的左右孩子,在...
分类:
其他好文 时间:
2014-06-03 01:01:17
阅读次数:
313
介绍还有一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf
Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J.
Guibas和Robert Sedgewick改成一个比較摩登的名字:红黑...
分类:
其他好文 时间:
2014-06-02 20:05:23
阅读次数:
375
版本:v2.32 (2011-8-17)
作者:deerchao转载请注明来源目录跳过目录本文目标如何使用本教程正则表达式到底是什么东西?入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源...
分类:
其他好文 时间:
2014-06-02 17:22:48
阅读次数:
351
treap!var i,n,x,y,ans,a,b,root,tot,ft:longint;
l,r,s,v,hr:array[0..100000] of longint;procedure r_rotate(var x:longint); var
y:longint; begin y:=l[...
分类:
其他好文 时间:
2014-06-02 11:50:43
阅读次数:
181
标准的平衡树。贴个splay吧var v,l,r,fa:array[0..100000] of
longint; root,x,i,n,ans:longint;procedure zig(x:longint); var y,z:longint; begin
y:=fa[x];z:=fa[y]; if...
分类:
其他好文 时间:
2014-06-01 16:47:21
阅读次数:
335
实验案例:删除文件系统日志组,保留ASM日志组
说明:
oracle文件系统迁移至ASM,需要删除文件系统的日志组,只保留ASM日志组。若两者均保留,会出现读写日志性能不平衡状态。向ASM中读写日志要远快于向文件系统中读写日志。
操作步骤:
SQL> select * from v$log;
--查看到当前日志组为2,第1、3日志组处于INACTIVE状态,脏块已经写完,可以将这...
分类:
其他好文 时间:
2014-06-01 09:58:48
阅读次数:
365
/*
**AVL平衡树插入例程
**2014-5-30 11:44:50
*/
avlTree insert(elementType X, avlTree T){
if(T == NULL){
T = malloc(sizeof(struct avlTree));
if(T == NULL) fatalError("Out of space!!!");
T->element = X...
分类:
其他好文 时间:
2014-06-01 09:50:16
阅读次数:
233