//#include<bits/stdc++.h>
#include<iostream>
using namespace std;
const int N=1e5+10;
//定义
int eN,preN,neN,h,id;
int mpN;
//头插
// 兵 y
// x
void push_front (int x)
{
id++;
eid=x;
mpx=id;
preid=h;
neid=neh;
//先修改新节点
// prene\[id]=id; ne【id】就是ne【h】看上边,刚赋的值
prene\[h]=id;
// preid=h;
neh=id; //最后改这个
}
// 遍历打印,无视pre即可
void print()
{
for(int i=neh;i;i=nei)
{
cout<<ei<<" ";
}cout<<endl;
}
// 按值查找,mp数组优化·
int find(int x)
{
return (mpx);
}
// 任意位置(存储位置,下标)之后插入
// p
// 1 3
// x
void insert(int p,int x)
{
id++;
eid=x;
mpx=id;
preid=p;
neid=nep;
// preid=p;
prene\[p]=id;
nep=id;
}
//任意位置(存储位置,下标)之前插入
// p
// 1 2
// x
void insret_front(int p,int x)
{
id++;
eid=x;
mpx=id;
neid=p;
preid=prep;
nepre\[p]=id;
prep=id;
}
//删除任意位置元素
// p
// 1 2
// x
void erase(int p)
{
// mpp=0; 这个不对
mpe\[p]=0;
nepre\[p]=nep;
prene\[p]=prep;
}
int main()
{
for(int i=0;i<6;i++)
{
push_front(i);
}
print();
cout<< find(0)<<endl;
cout<< find(2)<<endl;
insert(1,33);
print();
insert(7,88);
print();
cout<< find(33)<<endl;
cout<< find(88)<<endl;
insret_front(1,66);
print();
insret_front(3,33);
print();
insret_front(8,100);
print();
insret_front(9,666);
print();
erase(1);
print();
cout<< find(100)<<endl;
erase(11);
print();
erase(7);
print();
erase(find(666));
print();
return 0;
}