list实现ALDS1_3_C;double Linked List

代码:

#include <cstdio>
#include <iostream>
#include <list> 
using namespace std;
int main()
{
	list<int> v; 
	int n,x;
	char com[20];
	scanf("%d",&n);
	for(int i=0;i<n;i++) {
		scanf("%s",com);
		if(com[0] == 'i') {
			scanf("%d",&x);
			v.push_front(x);    //相当于insert
		} else if(com[6] == 'L') {
			v.pop_back();			//相当于deleteLast
		}else if(com[6] == 'F') {
			v.pop_front();			//相当于deleteFirst
		} else if(com[0] == 'd') {	//相当于delete
			scanf("%d",&x);
			for(list<int>::iterator it =v.begin(); it != v.end(); it++) {
				if(*it == x) {
					v.erase(it);
					break;
				}
			}
		}
	} 
	int i = 0;
	for(list<int>::iterator it = v.begin(); it != v.end(); it++) {	//打印 
//		printf("%d%c",*it,it==v.end()?'\n':' ');
        if(i++ > 0)  printf(" ");
        printf("%d",*it);
	}
	printf("\n"); 
	return 0;
 } 


猜你喜欢

转载自blog.csdn.net/hpuw1234/article/details/77483635