数据结构:
1.普通数组
int z[100000];
{
for (int j=n;j>i;j--)
z[j+1]=z[j];
z[i+1]=v;
}
void del(int *z,int n,int i)
{
for (int j=i;j<n;j++)
z[j]=z[j+1];
}
**2.双向链表
struct node
{
int next,pre;
int v;
};
node z[233333];
//i->k
//i->j->k
void insert(int i,int j)//编号为j的节点插入到编号为i的节点后面
{
//O(1)
int k=z[i].next;
z[i].next=j;
z[j].next=k;
z[k].pre=j;
z[j].pre=i;
}
//j->i->k
//j->k
void del(int i)
{
//O(1)
int j=z[i].pre;
int k=z[i].next;
z[j].next=k;
z[k].pre=j;
}
int query(int i)//询问链表第i个元素的值
{
int p=head;