双链表(模板)AcWing.827

code:

#include<bits/stdc++.h>//xfl
using namespace std;
const int N = 1e5+5;
struct Biao{int v,nxt,pre;}b[N];
int l,r,cnt=1,n,k,x;
void add(int k,int x){b[++cnt].v=x;b[cnt].nxt=b[k].nxt;b[cnt].pre=k;b[b[k].nxt].pre=cnt;b[k].nxt=cnt;}
void deleted(int k){b[b[k].pre].nxt=b[k].nxt;b[b[k].nxt].pre=b[k].pre;}
int main()
{
    string a;
    scanf("%d",&n);
    l=0;r=1;
    b[0].nxt=1;b[1].pre=0;
    while(n--)
    {
        cin>>a;
        if(a=="L"){scanf("%d",&x);add(0,x);}
        if(a=="R"){scanf("%d",&x);add(b[1].pre,x);}
        if(a=="IL"){scanf("%d%d",&k,&x);add(b[k+1].pre,x);}
        if(a=="IR"){scanf("%d%d",&k,&x);add(k+1,x);}
        if(a=="D"){scanf("%d",&k);deleted(k+1);}
    }
    for(int i=b[0].nxt;i!=1;i=b[i].nxt)printf("%d ",b[i].v);
    return 0;
}

 

posted @ 2020-12-18 16:28  纸上的彩虹  阅读(66)  评论(0)    收藏  举报