Splay是众多平衡树之一,它的功能十分强大,但常数极大.在LCT和许多数据结构中都能用到. Splay的核心操作,就是rotate.为了使树不是一条链,而是平衡的,我们需要旋转来维护形态.理论很简单,下面来看一下如何实现. 图片转自洛谷 我们注意到,旋转之后,这棵树依然保持着正常的大小关系. 来尝试着写代码. 观察到,y的c儿子依旧是y的右儿子,而x,y的父子关系发生了改变,x的左儿子不变,x的右儿子变成了y的左儿子. 这是右旋. 明显的,我们发现不只有这一种情况.单旋的Splay,会被出题人…