队列是一种数据结构。现在你要支持几种操作:
-
push x,将x这个元素放到队尾。
-
pop,表示将队头的元素删除。
-
query k,询问从队头往后数第k个元素是多少。
第一行一个整数m,表示操作个数。 接下来m行,每行一个上面所述的操作。输出格式
输出若干行,对于每个查询操作,输出答案。样例输入
10 push 1 push 2 query 1 query 2 push 3 query 1 pop query 1 push 4 query 1样例输出
1 2 1 2 2数据规模 题解
#include#include using namespace std; const int N = 1e5+5; int Queue[N], front=1, rear=0; //此时队列为空 char tmp[6]; int main(){ int m; scanf("%d", &m); while(m--){ scanf("%s", tmp); if(tmp[1] == 'o') ++front; //front++是出队 else if(tmp[0] == 'p') scanf("%d", &Queue[++rear]); //入队 else{ int k; scanf("%d", &k); printf("%dn", Queue[front+k-1]); //从front开始往后数k个,front是第1个 } } return 0; }



