随笔分类 -  平衡树

Treap 入门
摘要:所谓treap: tree+heap.Treap在以关键码value构成二叉查找树的同时,还按优先级random来满足堆的性质。它的维护方式同样是旋转,但只有左旋和右旋,且可以合写为一个rotate(int& p, bool r);它支持普通平衡树的功能:插入、删除单个元素,询问整棵树的第k大但是线段树能做到的区间操作,它一般不支持,但splay可以。详细说明:http://www.nocow.cn/index.php/Treap模板题:hdu 4006http://acm.hdu.edu.cn/showproblem.php?pid=4006 1 #include 2 #includ 阅读全文

posted @ 2014-02-11 17:57 KimKyeYu 阅读(268) 评论(0) 推荐(0)

Splay入门
摘要:这几天了解了一下平衡树,大概有如下几种:AVL, 红黑, SBT, splay, treap, 后两者不是很严格的平衡。反正先拿splay练手了,感觉比较热门。。。平衡树的维护都靠旋转,splay也是。其核心是Splay(x, goal)操作:把节点x一层层Rotate上去,直到x到达目的地goal下方;它支持任意区间的更新,查询,插入,删除and翻转,O(lgn)。模板来源:(盗用自notonlysuccess牛) http://www.notonlysuccess.com/index.php/splay-tree/用法:(来自Crash牛) http://www.docin.com/p.. 阅读全文

posted @ 2014-01-25 01:37 KimKyeYu 阅读(403) 评论(0) 推荐(0)

AVL树入门
摘要:AVL树,平衡树的一种,插入,删除,询问均为O(lgn)。这些天学了下它的实现,(删除貌似很麻烦,还不会。。)它的插入同查找树,之后靠旋转来维持平衡。旋转分4种情形:LL, LR, RL, RR;LL 可以 由一次右单旋平衡,与之对称的,RR 可以 由一次左单旋平衡。LR 则须 由一次左单旋,先变为LL,再由一次右单旋平衡 。(即一次左右双旋)RL 与之对称的,一次右左双旋。详见:http://blog.csdn.net/gabriel1026/article/details/6311339应用一:动态查询 整颗树中第k大数。hdu 4006: http://acm.hdu.edu.cn/s. 阅读全文

posted @ 2013-12-04 22:13 KimKyeYu 阅读(325) 评论(0) 推荐(0)

导航