在这里插入图片描述
输入格式
第一行一个整数 q表示操作次数。
接下来 q行,每行表示一次操作,操作具体间题目描述。
输出格式
对于每个操作 2,输出一个数字,用换行隔开。
在这里插入图片描述

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
int n;
struct Node {
    int l, r;
};
map<int, Node>mm;
int main()
{
    mm[0].l = -1;
    mm[-1].r = 0;
    //-1作为开头0作为结尾
    cin >> n;
    while (n--)
    {
        int a;
        cin >> a;
        if (a == 1)
        {
            int b, c;
            cin >> b >> c;
            int temp;
            temp = mm[b].r;
            mm[b].r = c;
            mm[c].l = b;
            mm[c].r = temp;
            mm[temp].l = c;
        }
        else if (a == 3)
        {
            int b;//删除的是b后面的不是b
            cin >> b;
            mm[mm[mm[b].r].r].l = mm[mm[b].r].l;
            mm[mm[mm[b].r].l].r = mm[mm[b].r].r;
        }
        else
        {
            int b;
            cin >> b;
            cout << mm[b].r << endl;
        }
    }
    return 0;
}

更多推荐