Splay Splay(伸展树)是一种二叉搜索树。 其复杂度为均摊\(O(n\log n)\),所以并不可以可持久化。 Splay的核心操作有两个:rotate和splay。 pushup: 上传信息,比如区间和、子树大小... rotate: rotate实现把一个节点\(x\)转到 ...
在刷了许多道平衡树的题之后,对平衡树有了较为深入的理解,在这里和大家分享一下,希望对大家学习平衡树能有帮助。 平衡树有好多种,比如treap,splay,红黑树,STL中的set。在这里只介绍几种常用的:treap splay和替罪羊树 其中treap包括旋转treap和非旋转treap 。 一 treap treap这个词是由tree和heap组合而成,意思是树上的的堆 其实就是字面意思啦qwq ...
2018-06-23 18:24 0 1014 推荐指数:
Splay Splay(伸展树)是一种二叉搜索树。 其复杂度为均摊\(O(n\log n)\),所以并不可以可持久化。 Splay的核心操作有两个:rotate和splay。 pushup: 上传信息,比如区间和、子树大小... rotate: rotate实现把一个节点\(x\)转到 ...
扯 学校清明竟然给放两天假期,心血来潮突然想去学习平衡树。 可是我太弱了学不会有旋转操作的treap和splay,这可怎么办啊qaq。 诶?我以前好像看过一种叫做替罪羊树的平衡树可以不用旋转操作,那还是学这个吧…… 替罪羊树 用处 替罪羊树是一种平衡树,支持插入,删除,查找第k小 ...
最近在研究平衡树,看起来这种东西又丧水又很深,感觉很难搞清楚。在Ditoly学长的建议下,我先学习了正常的treap,个人感觉这应该是平衡树当中比较好懂的而且比较好写的一种。 然而,发现带旋treap有很多无法支持的操作,例如各种区间操作,而且由于会旋转无法可持久化,这是一个十分影响实用性的问题 ...
二叉搜索树($BST$):一棵带权二叉树,满足左子树的权值均小于根节点的权值,右子树的权值均大于根节点的权值。且左右子树也分别是二叉搜索树。(如下) $BST$的作用:维护一个有序数列,支持插入$x$,删除$x$,查询排名为$x$的数,查询$x$的排名,求$x$的前驱后继等操作 ...
Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: View Code 相关题解: POJ 3481 treap POJ 1442 treap POJ 2352 treap Splay ...
Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: 相关题解: POJ 3481 treap POJ 1442 treap POJ 2352 treap Splay Tree(伸展树) 核心 ...
替罪羊树是一种依靠重构操作维持平衡的重量平衡树。替罪羊树会在插入、删除操作时,检测净土的节点,若发现失衡,则将以该节点为根的子树重构。 序言: 我们知道在一棵平衡的二叉搜索树内进行查询等操作时,时间就可以稳定在\(log(n)\)但是每一次的插入和删除节点,都会使得这棵树不平衡,最会情况 ...
冬令营被平衡树坑了之后,打算苦练一番数据结构(QAQ)。 先是打了一下想学好久的替罪羊树。 替罪羊树实现方法很简单,就是在不满足平衡条件的时候暴力重构子树。 调试小结: 1.删除操作分两类情况:如果某点只有一个孩子,将它的孩子提上来即可,否则将它变为它的前驱,再删去它的前驱。 ...