双向链表
发布日期:2021-05-14 16:43:30 浏览次数:10 分类:精选文章

本文共 2203 字,大约阅读时间需要 7 分钟。

            #include 
const int N = 100010;
int l[N], r[N], idx, e[N];
void init() {
idx = 2;
r[0] = 1;
l[1] = 0;
void dele(int k) {
l[r[k]] = l[k];
r[l[k]] = r[k];
void add(int k, int x) {
e[idx] = x;
l[r[k]] = idx;
r[idx] = r[k];
l[idx] = k;
r[k] = idx;
idx++;
int main() {
init();
int n;
cin >>
while(n--) {
int k, x;
string a;
cin >>
if(a == "L") {
cin >>
add(0, x);
} else if(a == "D") {
cin >>
dele(k+1);
} else if(a == "R") {
cin >>
add(l[1], x);
} else if(a == "IR") {
cin >>
k >>
x >>
add(k+1, x);
} else if(a == "IL") {
cin >>
k >>
x >>
add(l[k+1], x);
}
for(int i = r[0]; i != 1; i = r[i]) {
// ignore the ends
cout << e[i] << " ";
}

������������������������������������������������C++������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

上一篇:单调队列
下一篇:单向链表

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月08日 01时02分18秒