#P3515. 数组模拟队列
数组模拟队列
题目描述
队列基础知识点
队列(queue)是OI中常用的线性数据结构,遵循先进先出(FIFO) 原则,元素的插入和删除操作分别在两端进行:
- 允许插入元素的一端称为队尾,插入操作(入队)仅在队尾进行,时间复杂度;
- 允许删除元素的一端称为队首,删除操作(出队)仅在队首进行,时间复杂度;
- 队列理论上不支持遍历操作。
可以将队列想象成排队的人群,新来的人只能排在队尾,处理总是从队首的人开始。在OI中,既可以用一维数组模拟队列,也可以使用STL的queue实现,本题要求模拟队列的基本操作。
任务要求
实现一个初始为空的队列,支持以下四种合法操作:
push x– 向队尾插入一个数;pop– 从队首弹出一个数;empty– 判断队列是否为空,需输出查询结果;query– 查询队头元素的值,需输出查询结果。
现在对该队列进行次操作,其中empty和query操作需要输出对应的结果。
输入格式
第一行包含整数,表示操作的总次数。
接下来行,每行包含一个操作命令,命令为push x、pop、empty、query中的一种。
输出格式
对于每个empty和query操作,输出对应的查询结果,每个结果占一行:
empty操作:队列空则输出YES,非空则输出NO;query操作:输出一个整数,表示当前队列的队头元素值。
样例输入
10
push 6
empty
query
pop
empty
push 3
push 4
pop
query
push 6
样例输出
NO
6
YES
4
提示
- ;
- ;
- 所有操作均保证合法(如
pop、query操作仅在队列非空时执行)。
相关
在以下作业中: