#120. 普通平衡树
普通平衡树
您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:
- 插入数值x。
- 删除数值x(若有多个相同的数,应只删除一个)。
- 查询数值x的排名(若有多个相同的数,应输出最小的排名)。
- 查询排名为x的数值。
- 求数值x的前驱(前驱定义为小于x的最大的数)。
- 求数值x的后继(后继定义为大于x的最小的数)。
注意: 数据保证查询的结果一定存在。
输入格式
第一行为n,表示操作的个数。
接下来n行每行有两个数opt和x,opt表示操作的序号(1<=opt<=6)。
输出格式
对于操作3,4,5,6每行输出一个数,表示对应答案。
数据范围
,所有数均在到内。
输入样例:
8
1 10
1 20
1 30
3 20
4 2
2 10
5 25
6 -1
输出样例:
2
20
20
20
来源
- 《算法竞赛进阶指南》
- acwing 可能含有视频讲解