splay旋转模板

来源:互联网 发布:手机c语言编译器哪个好 编辑:程序博客网 时间:2024/05/06 02:29

splay旋转模板

void rotate(int x) {    int y=f[x],z=son(x);f[x]=f[y];    if (f[x]) t[f[x]][son(y)]=x;    t[y][z]=t[x][1-z];    if (t[x][1-z]) f[t[x][1-z]]=y;    f[y]=x;t[x][1-z]=y;}void splay(int x,int y) {    while (f[x]!=y) {        if (f[f[x]]!=y)            if (son(f[x])==son(x)) rotate(f[x]);            else rotate(x);        rotate(x);     }    if (!y) root=x;}
0 0
原创粉丝点击