非旋Treap学习
非旋Treap
好东西!!!从疯狂‘赚’的Treap到不‘赚’,Treap付出了时间的代价,但减少了代码的长度多么重要的一点呀!!!感谢神FHQ(orz)发明了这个数据结构。看过冗长的Treap后,再来打非旋Treap,是如此的释然。非旋Treap最大的优点就是代码短,方便实现,支持操作多。今天,来讲讲一种二分查找树非旋Treap。
非旋Treap最重要的操作是split(分裂)与merge(合并),其他的操作都是围绕着它展开的。
接下来,我们来讨论一下它的各项操作。
前导--笛卡尔树
一种建树方法
只是介绍一下。
- 笛卡尔树是一棵二叉树,树的每个节点有两个值,一个为 key,一个为 val。
- 光看 key 的话,笛卡尔树是一棵二叉搜索树,每个节点的左子树的 key 都比它 小,右子树都比它大;
- 光看 val

浙公网安备 33010602011771号