标签:++ cin col names com 删除 for 双链表 string
#include<iostream> using namespace std; const int N = 100010; int val[N],le[N],ri[N]; int idx; int n,m; //初始化 ri[0] 和 le[1]分别为双链表的左右端点 void init(){ ri[0] = 1, le[1] = 0; idx = 2; } //在节点k的右侧插入一个数 void add(int k,int x){ val[idx] = x; ri[idx] = ri[k]; le[idx] = k; le[ri[k]] = idx; ri[k] = idx; idx++; } //删除节点k void del(int k){ le[ ri[k] ] = le[k]; ri[ le[k] ] = ri[k]; } int main(){ cin>>n; string ch; init(); int k,x; while(n--){ cin>>ch; if(ch == "L"){ cin>>x; add(0,x); } if(ch == "R"){ cin>>x; add(le[1],x); } if(ch == "D"){ cin>>x; del(x+1); } if(ch == "IL"){ cin>>k>>x; add(le[k+1],x); } if(ch == "IR"){ cin>>k>>x; add(k+1,x); } } for(int i = ri[0] ; i != 1 ; i = ri[i]){ cout<<val[i]<<" "; } cout<<endl; return 0; }
标签:++ cin col names com 删除 for 双链表 string
原文地址:https://www.cnblogs.com/Flydoggie/p/12244510.html