AcWing 827. 双链表
原题链接
简单
作者:
偶尔也会翻身的咸鱼
,
2024-02-05 18:07:50
,
所有人可见
,
阅读 30
map + list容器写法
#pragma GCC optimize(2)
#pragma GCC optimize(3, "Ofast", "inline")
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int q;
cin >> q;
list<int> lk;
unordered_map<int, list<int>::iterator> mp;
int o = 1;
while (q--) {
int k, x;
string op;
cin >> op;
if (op == "L") {
cin >> x;
lk.push_front(x);
mp[o++] = lk.begin();
} else if (op == "R") {
cin >> x;
lk.push_back(x);
mp[o++] = prev(lk.end());
} else if (op == "D") {
cin >> k;
lk.erase(mp[k]);
} else if (op == "IR") {
cin >> k >> x;
mp[o++] = lk.insert(next(mp[k]), x);
} else {
cin >> k >> x;
mp[o++] = lk.insert(mp[k], x);
}
}
for (auto x: lk) {
cout << x << " ";
}
return 0;
}