非旋Treap学习

非旋Treap

好东西!!!从疯狂‘赚’的Treap到不‘赚’,Treap付出了时间的代价,但减少了代码的长度多么重要的一点呀!!!感谢神FHQ(orz)发明了这个数据结构。看过冗长的Treap后,再来打非旋Treap,是如此的释然。非旋Treap最大的优点就是代码短,方便实现,支持操作多。今天,来讲讲一种二分查找树非旋Treap。

非旋Treap最重要的操作是split(分裂)与merge(合并),其他的操作都是围绕着它展开的。

接下来,我们来讨论一下它的各项操作。


前导--笛卡尔树

一种建树方法

只是介绍一下。

  • 笛卡尔树是一棵二叉树,树的每个节点有两个值,一个为 key,一个为 val。
  • 光看 key 的话,笛卡尔树是一棵二叉搜索树,每个节点的左子树的 key 都比它 小,右子树都比它大;
  • 光看 val
posted @ 2022-08-11 14:52  StaroForgin  阅读(15)  评论(0)    收藏  举报  来源