输入格式
第一行一个整数 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;
}