博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搜索二叉树
阅读量:7232 次
发布时间:2019-06-29

本文共 1062 字,大约阅读时间需要 3 分钟。

缺少删除,见下一篇中的treap平衡树

特点:左大右小

这里写图片描述

代码

#include
#include
#include
#include
#include
#include
#include
#define M 99999using namespace std;int lc[M],rc[M],size[M],key[M],f[M],tot=0;int n,m;int root=1;int add(int v){ tot++; size[tot]=1; key[tot]=v; return tot;}void insert(int &t,int v){ if(!t) t=add(v); else if(v
k-1) return askmin(lc[t],k); else return askmin(rc[t],k-size[lc[t]]-1);//当前点是第size[lc[t]]+1大的值 }//与下面while版 askmin()等价 */int askmin(int t,int k)//查找第k小的数 { int b=0; while(1){ if(size[lc[t]]==k-(1+b)) return key[t]; if(size[lc[t]]>k-1) t=lc[t]; else { b+=size[lc[t]]+1;// b累加 t=rc[t]; } } }/*int askxth(int t,int x)//查询x的排名 { if(key[t]==x) return size[lc[t]]+1; if(key[t]> x) return askxth(lc[t],x); if(key[t]< x) return askxth(rc[t],x)+size[lc[t]]+1;}//下面是 while 版 */int askxth(int t,int x)//查询x的排名 { int b=0; while(1) { if(key[t]==x) break; if(key[t]>x) t=lc[t]; if(key[t]
=x&&(key[lc[t]]

转载于:https://www.cnblogs.com/dfsac/p/7587946.html

你可能感兴趣的文章
BZOJ5168:[HAOI2014]贴海报(线段树)
查看>>
<%@Page%>中的Codebehind AytoEventWireup.inherits有何作用?
查看>>
64. Minimum Path Sum
查看>>
SQL Server 导入bak备份出错
查看>>
JavaScript中的私有/静态属性
查看>>
Ubuntu下安装XAMPP
查看>>
C# ExpandoObject用法
查看>>
【SICP练习】135 练习3.66
查看>>
数据挖掘——文本挖掘-关键字提取
查看>>
Codeforces Gym - 101102A - Coins
查看>>
webstorm识别 ftl文件
查看>>
在Window 下安装Redis数据库
查看>>
主席树 | | 可持久化线段树
查看>>
JSTL中c:set标签的要点和技巧
查看>>
arp命令
查看>>
微信公众号的localStorage的大坑
查看>>
lua算法(连载)
查看>>
IE6、7下overflow:hidden失效的问题
查看>>
php的静态化
查看>>
asp.net 中使用 pagedlist 分页并具有查询功能的实现方法
查看>>