双向链表
#include<iostream>
using namespace std;
const int N=10010;
int e[N],l[N],r[N],idx;
//初始化
void init()
{
//0为左端点,1为右端点
r[0]=1,l[1]=0;
idx=2;
}
//在下标为k右边的数插入一个数
void add(int k,int x)
{
e[idx]=x;
r[idx]=r[k];
l[r[k]]=idx;
r[k]=idx;
l[idx]=k;
idx++;
}
//删去下标为k的数
void pop(int k)
{
l[r[k]]=l[k];
r[l[k]]=r[k];
}
int main()
{
return 0;
}