Treap
来源:互联网 发布:怎么删除ubuntu系统 编辑:程序博客网 时间:2024/05/01 10:16
#include <cstdio>#include <cstdlib>#define M 1024using namespace std;struct Treap{int l,r,key,fix;}T[M];int size,root;void L(int &x){int y=T[x].r;T[x].r=T[y].l;T[y].l=x;x=y;}//×óÐývoid R(int &x){int y=T[x].l;T[x].l=T[y].r;T[y].r=x;x=y;}//ÓÒÐývoid insert(int &k,int tkey){if(k==-1){k=size++;T[k].l=T[k].r=-1;T[k].key=tkey;T[k].fix=rand();}elseif(tkey<T[k].key){insert(T[k].l,tkey);if(T[T[k].l].fix>T[k].fix) R(k);}else{insert(T[k].r,tkey);if(T[T[k].r].fix>T[k].fix) L(k);}} //insertvoid remove(int &k,int tkey){if(k==-1) return;if(tkey<T[k].key) remove(T[k].l,tkey);elseif(tkey>T[k].key) remove(T[k].r,tkey);else{if(T[k].l==-1&&T[k].r==-1) k=-1;else if(T[k].l==-1) k=T[k].r;else if(T[k].r==-1) k=T[k].l;elseif(T[T[k].l].fix<T[T[k].r].fix){L(k);remove(T[k].l,tkey);}else{R(k);remove(T[k].r,tkey);}}}//removeint main(){return 0;}
参考:
http://www.nocow.cn/index.php/Treap
http://www.nocow.cn/index.php/Treap_C%2B%2B
0 0
- Treap
- Treap
- Treap
- Treap
- Treap
- Treap
- treap
- Treap
- treap
- Treap
- treap
- Treap
- Treap
- treap
- Treap
- Treap
- Treap
- Treap
- 88. PHP 在同一个文件中定义多个命名空间
- brown film faced plywood poplar core WBP glue
- STIPs检测器 打开视频
- springMVC中整合log4j,让日志输出到控制台,并按日期记录到指定web目录
- Python学习笔记(二)
- Treap
- 福建新崛起的佛珠世家<聚美>品牌
- 最新Linux安装版本jira6.3.6安装破解以及数据导入的详细步骤
- Beautiful Palindrome Number 美丽的回文数 HD 5062
- Android 开发最佳实践
- ruby 类、对象、变量
- 嵌入式环境搭建之开发板软件环境
- IOS学习 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObject)
- 关于typedef的用法总结