Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Doubly Linked List"
https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_3_C
・双方向連結リスト
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #ALDS1_3_C : Doubly Linked List
/* Aizu Online Judge in C++ #ALDS1_3_C : Doubly Linked List https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_3_C 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s; list<int> lis; list<int>::iterator it,l; int n,x; cin>>n; while(n--){ cin>>s; if(s=="insert"){ cin>>x; lis.push_front(x); }else if(s=="delete"){ cin>>x; for(it=lis.begin(),l=lis.end();it!=l;it++){ if(*it==x){ lis.erase(it); break; } } }else if(s=="deleteFirst"){ lis.pop_front(); }else{ lis.pop_back(); } } for(it=lis.begin(),l=--lis.end();it!=l;it++){ cout<<*it<<" "; } cout<<*it<<endl; return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/