插入
原理
模版
//* 在第 K 个点右边插入一个 X
void add(int k, int x)
{
e[idx] = x;//先放入值
r[idx] = r[k];//红色指针指向右边的
l[idx] = k;//红色指针指向k本身
l[r[k]] = idx;//k右边的点的指针向左指向红色指针
r[k] = idx;//k向右指向红色指针
}//在 k 的左边插入一个 数 等价于在 l[k+1] 的右边插入一个数 add(l[k+1],x)
//最左侧插入
add(0,x);
//最右侧插入
add(l[1],x);
删除
原理
模版
void remove(int k)
{
r[l[k]] = r[k];//右边的右边是右边
l[r[k]] = l[k];//左边的左边是左边
}
remove(k+1);