splay旋转模板
2016-04-20 20:49
295 查看
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; }
相关文章推荐
- java中的事件监听是怎样实现随时监听的
- IMCP包如何区分
- java毕向东听课笔记20(基本数据类型包装类)
- uva 11572 unique snowflakes——yhx
- Codeforces Beta Round #9 (Div. 2 Only) D. How many trees? dp
- [转]Acrylic DNS Proxy 使用方法
- 正则表达式-概要
- Android中AIDL的使用
- 博弈论问题
- org.dbunit.dataset.NoSuchColumnException: t_role.ROLE_TYPE - (Non-uppercase input column: role_type
- C3P0连接超时分析
- 三和韓長庚 著 易學原理總論 對讀 81_100
- 链队
- malloc/free的用法详解
- mac iterm2有什么酷功能?
- 好文章集合
- 1017 非常可乐
- eclipse里面对比两个java文件
- Gallery实现缩略图图片浏览
- 对dom4j的简单理解与简单实现