0
点赞
收藏
分享

微信扫一扫

acwing827双链表

像小强一样活着 2022-01-27 阅读 83

#include<bits/stdc++.h>

using namespace std;

int tt;
const int N = 100010;
int idx;
vector<int > e(N), l(N), r(N);

void iint()
{
    idx = 2;
    r[0] = 1;
    l[1] = 0;
}

void add(int k, int x)
{
    e[idx] = x;
    r[idx] = r[k];
    l[idx] = k;
    r[l[idx]] = idx;
    l[r[idx]] = idx;
    idx++;
}

void remove(int k)
{
    r[l[k]] = r[k];
    l[r[k]] = l[k];
}
int main()
{
    freopen(".in", "r", stdin);
    ios::sync_with_stdio(0);
    cin.tie(0);

    iint();
    cin >> tt;
    while (tt--)
    {
        string op;
        cin >> op;
        int x, k;
        if (op == "L")
        {
            cin >> x;
            add(0, x);
        }
        if (op == "R")
        {
            cin >> x;
            add(l[1], x);
        }
        if (op == "D")
        {
            cin >> k;
            remove(k + 1);
        }
        if (op == "IL")
        {
            cin >> k >> x;
            add(l[k + 1], x);
        }
        if (op == "IR")
        {
            cin >> k >> x;
            add(k + 1, x);
        }
    }

    for (int i = r[0]; i != 1; i = r[i])cout << e[i] << ' ';
    cout << endl;

    return 0;
}

举报

相关推荐

双链表:AcWing 827. 双链表

单链表:AcWing 826. 单链表

链表双指针

【双链表实现】

双链表------pytohn

链表的补充——双链表

单链表和双链表

0 条评论