Splay是个好东西,中文译名为伸展树,它除了拥有Treap的功能外,还也可以实现快速分裂和合并序列。(学之前最好先对BST和Treap有一定了解) 最重要的是理解Splay的伸展操作,即将一个指定节点x自底向上通过旋转操作,使x成为根节点,要分三种情况来考虑: 1、x的节点为父节点,进行一次单旋即可; 2、x的父节点y、y的父节点z在一条直线上如下图: 3、x,y,z不在一条直线上,形成一个“Z”形如下图:
(好吧图确时有点那个啥,不过这不是重点,理解就好) 上代码:
hhh
新闻热点
疑难解答