r[n]存储右端点 l[n]存储左端点
#include <iostream>
using namespace std;
const int N =10000;
int e[N],r[N],l[N],idx;
int main()
{
void init()
{
r[0]=1,l[1]=0;// 0表示左端点, 1表示右端点
idx=2;
}
void add(int x,int k){
//在下标为K的点的右边插入x
e[idx] =x;
r[idx] =r[k];
l[idx]=k;
l[r[k]] =idx;
r[k]=idx;
}
void add(int k,int l[k])
{
//在下标为k的左边插入x
// 与上方函数同理
}
void remove(int k) //删除第K个点
{
r[l[k]] =r[k];
l[r[k]] =l[k];
}
return 0;
}
插入k的步骤