数据结构的扩张
来源:互联网 发布:万能变号王软件2017 编辑:程序博客网 时间:2024/04/29 00:09
顺序统计树:
enum nodecolor {red,black};struct os_node{ int key; os_node *left; os_node *right; os_node *p; nodecolor color; int size; os_node(int a,nodecolor c=red,int s=1) { key=a; color=c; size=s; }};static os_node *NIL=new os_node(0,black,0);os_node* os_select(os_node *x,int i)//寻找x为根顺序统计树中第i小关键字的结点指针,O(lgn){ int r=x->left->size+1; if(i==r) return x; else if(i<r) return os_select(x->left,i); else return os_select(x->right,i-r);}int os_rank(os_node *x,os_node *z)//给定x为根的顺序统计树中的结点z,返回对x进行中序遍历后z的位置,即z的秩,O(lgn){ int r=z->left->size+1; os_node *y=z; while(y!=x) { if(y==y->p->right) r=r+y->p->left->size+1; y=y->p; } return r;}int os_key_rank(os_node *x,int k)//给定树根x和关键字k,返回k的秩,{ if(x->key==k) return x->left->size+1; else if(x->key>k) return os_key_rank(x->left,k); else return x->left->key+1+os_key_rank(x->right,k);}
区间树:
enum nodecolor {red,black};class interval//区间{ int low; int high;};struct interval_node{ interval inter; int max;//以该结点为根的树中所有区间端点的最大值 interval_node *left; interval_node *right; interval_node *p; nodecolor color; interval_node(int l,int h,nodecolor c=red) { inter.low=l; inter.high=h; color=c; }};static interval_node *NIL=new interval_node(0,0,black);interval interval_search(interval_node *x,interval i)//找出以x为根的区间树中覆盖区间i的那个结点{ interval_node *y=x; while(y!=NIL && (i.low>y->inter.high || i.high<y->inter.low)) { if(y->left!=NIL && y->left->max>=i.low) y=y->left; else y=y->right; } return y;}
- 数据结构的扩张
- 算法导论-数据结构的扩张
- 对基础数据结构的扩张
- 第十四章 数据结构的扩张
- 数据结构扩张
- 算法导论 ch14 数据结构的扩张
- 算法导论第十四章:数据结构的扩张
- 算法导论第十四章数据结构的扩张
- 算法导论笔记:14数据结构的扩张
- 算法导论 14章 数据结构的扩张
- 算法导论 14章 数据结构的扩张
- 算法导论14(数据结构的扩张)
- 算法导论 第十四章:数据结构的扩张
- 算法导论 ch14 数据结构的扩张 区间树
- 算法导论代码 第14章 数据结构的扩张
- 《算法导论》第14章 数据结构的扩张 (2)
- 算法导论-第14章-数据结构的扩张
- 算法导论 14章 数据结构的扩张(二) 区间树
- c++primer/2/21---基本内置类型
- 对表按字段分组,并且取前50条记录
- Linux 环境进程间通信(三):消息队列
- Class loader
- Linux环境进程间通信(四):信号灯
- 数据结构的扩张
- virtualbox主目录位置及功能
- DirectCompute
- iPhone开发部分总结_1_
- Linux环境进程间通信(五):共享内存
- 关于navicat连接oracle 报 ORA-12737 set CHS16GBK错误的解决
- oracle 自增长主键
- WPF:Range 控件
- Qt 窗体的淡入淡出效果