- Input
- The input is given in the following format:
- n
- command1
- command2
- ...
- commandn
- In the first line, the number of operations n is given. In the following n lines, the above mentioned operations are given in the following format:
- insert x
- delete x
- deleteFirst
- deleteLast
- Output
- Print all the element (key) in the list after the given operations. Two consequtive keys should be separated by a single space.
- Constraints
- The number of elements in the list does not exceed 106
- For a delete, deleteFirst or deleteLast operation, there is at least one element in the list.
- Sample Input 1
- 7
- insert 5
- insert 2
- insert 3
- insert 1
- delete 3
- insert 6
- delete 5
- Sample Output 1
- 6 1 2
- Sample Input 2
- 9
- insert 5
- insert 2
- insert 3
- insert 1
- delete 3
- insert 6
- delete 5
- deleteFirst
- deleteLast
- Sample Output 2
- 1
- #include
- #include
- #include
- using namespace std;
- int main()
- {
- int n, num;
- list l;
- char s[20];
- scanf("%d", &n);
- for(int i = 0; i <n; ++ i)
- {
- scanf("%s", s);
- if(s[0] == 'i')
- {
- scanf("%d", &num);
- l.push_front(num);
- }
- else if(s[6] == 'F')
- {
- l.pop_front();
- }
- else if(s[6] == 'L')
- {
- l.pop_back();
- }
- else if(s[0] == 'd')
- {
- scanf("%d", &num);
- for(list::iterator it = l.begin(); it != l.end(); it ++)
- {
- if(*it == num)
- {
- l.erase(it);
- break;
- }
- }
- }
- }
- int i = 0;
- for(list::iterator it = l.begin(); it != l.end(); it ++)
- {
- if(i ++) printf(" ");
- printf("%d", *it);
- }
- printf("\n");
- return 0;
- }
来源: http://www.bubuko.com/infodetail-3031029.html