关于splay的删除操作
splay的删除操作我是手动模拟模拟了之后才理解的。
操作代码:
lson=getmax(ls);(ls为要删除数的左二子,rs为右儿子,lson为ls的最大儿子)
swap(lson,ls),fa[lson]=0,splay(ls),rc[ls]=rs,fa[rs]=ls,update(ls);//这段就是把lson移到了root,这时root的右儿子就是要删除数,因为lson是小于要删除数的最大数。
splay的删除操作我是手动模拟模拟了之后才理解的。
操作代码:
lson=getmax(ls);(ls为要删除数的左二子,rs为右儿子,lson为ls的最大儿子)
swap(lson,ls),fa[lson]=0,splay(ls),rc[ls]=rs,fa[rs]=ls,update(ls);//这段就是把lson移到了root,这时root的右儿子就是要删除数,因为lson是小于要删除数的最大数。