E - 队列的操作

E - 队列的操作
Time Limit:1000MS    Memory Limit:131072KB    64bit IO Format:%lld & %llu

Description

一个初始化为空的队列,共有三种操作,pop,push,query

Input

pop操作, 输入pop, 输出并且删除队首的元素,如果没有则输出 empty!;

push操作,输入push d(d为一个整数);

query操作,输入query k(k为一个整数),输出队列中第k个元素,如果没有则输出 empty!.

Output

按要求输出

Sample Input

poppush 1poppush 10query 1

Sample Output

empty!110
// File Name: 队列的操作.cpp
// Author: rudolf
// Created Time: 2013年03月12日 星期二 13时36分47秒

#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<deque>
using namespace std;

int main()
{
	char chuan[10000];
	int num,k;
	deque<int> a;
	while(~scanf("%s",chuan))
	{
	getchar();
//
//getchar();
	//scanf("%d",&num);
	if(strcmp(chuan,"pop")==0)
	{
		if(a.empty())
		{
			cout<<"empty!"<<endl;
		//	getchar();
		}
		else
		{
			int x=a.front();
			cout<<x<<endl;
			a.pop_front();	
		}
	}
	if(strcmp(chuan,"push")==0)
	{
		scanf("%d",&num);
	//	getchar();
		a.push_back(num);
	}
	if(strcmp(chuan,"query")==0)
	{
		scanf("%d",&k);
	//	for(int i=0;i<k;i++)
	//
	//a.pop();
		if(k>a.size()||k<0)
			cout<<"empty"<<endl;
		else
			cout<<a.at(k-1)<<endl;
	}
	}
return 0;
}

posted @ 2013-04-12 17:18  bo_jwolf  阅读(281)  评论(0)    收藏  举报