代码源oj--数据结构初级:201 队列
队列是一种数据结构。现在你要支持几种操作:push x,将x这个元素放到队尾。pop,表示将队头的元素删除。query k,询问从队头往后数第k个元素是多少。输入格式第一行一个整数m,表示操作个数。接下来m行,每行一个上面所述的操作。输出格式输出若干行,对于每个查询操作,输出答案。样例输入10push 1push 2query 1query 2push 3query 1popquery 1push
·
队列是一种数据结构。现在你要支持几种操作:
-
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 <iostream>
#include <cstdio>
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("%d\n", Queue[front+k-1]); //从front开始往后数k个,front是第1个
}
}
return 0;
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)