题目描述

现在给你一个队列,它一开始是空的,你需要模拟队列的操作。队列的操作包括如下:

  1. “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;
  2. “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;
  3. “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
  4. “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
  5. “size”,输出当前队列中元素的个数。

输入格式

第一行一个正整数 n (1≤n≤100000),用于表示操作的数量。

接下来 n 行,每行可能是如下结构:

  1. “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;
  2. “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;
  3. “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
  4. “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
  5. “size”,输出当前队列中元素的个数。

输出格式

你需要判断每一行输入,并执行对应的操作。

样例输入

10
push 3
push 5
front
back
size
pop
pop
pop
front
size

样例输出

3
5
2
empty
0

样例解释

step.1: 将3 push 入队尾,此时队列中元素为:[ 3 ]

step.2: 将5 push 入队尾,此时队列中元素为:[ 3, 5 ]

step.3: 输出队首元素,此时队首元素为3,所以输出“3”

step.4: 输出队尾元素,此时队尾元素为5,所以输出“5”

step.5: 输出队列中元素个数,此时队列中元素个数为2,所以输出“2”

step.6: 将队首元素出队列,队首元素3出队列后,队列中元素为:[ 5 ]

step.7: 将队首元素出队列,队首元素5出队列后,队列中元素为:[ ] , 是一个空队列了

step.8: 将队首元素出队列,但是因为这个时候队列已经空了,所以我们什么操作都不做

step.9: 输出队首元素,此时队列为空,所以输出“empty”

step.10: 输出队列中元素个数,此时队列中元素个数为0,所以输出“0”

P1030 队列的基本操作的更多相关文章

  1. 二、 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)

    请指教交流! package com.it.hxs.c01; import java.util.Stack; /* 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek) */ ...

  2. D_S 循环队列的基本操作

    //  main.cpp #include <iostream> using namespace std; #include "Status.h" typedef in ...

  3. 队列模拟基本操作I

    看到这道题,第一个想法就是“搜索”!“回溯”!的确,这种思路是很正确的,BFS和DFS都可以来解决: #include <cstdlib> #include <cstring> ...

  4. C++中栈和队列的基本操作

    栈操作: s.push(item)    // 将item压入栈中 s.pop()            // 删除栈顶元素,不返回值 s.top()             // 读取栈顶元素,返回 ...

  5. C++ STL 学习笔记__(6)优先级队列priority_queue基本操作

    10.2.7优先级队列priority_queue v  最大值优先级队列.最小值优先级队列 v  优先级队列适配器 STL priority_queue v  用来开发一些特殊的应用,请对stl的类 ...

  6. c语言描述的链队列的基本操作

    #include<stdio.h> #include<stdlib.h> #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...

  7. c语言实现队列的基本操作

    话不多说,直接代码 #include"stdio.h" #include"stdlib.h" typedef struct QNode{ int date; s ...

  8. 实现队列的基本操作(数据结构)-python版

    class Queue: def __init__(self): self.entries = [] self.length = 0 self.front = 0 def put(self, item ...

  9. c++用类写栈和队列的简单基本操作(实验)

    继续更文.这次用类来写栈和队列,都是用数组模拟的: 以下是栈和队列的定义: 然后分别是栈和队列的类: 完整代码贴上: 栈 //使用类来定义栈 class ZHAN { public: STACK s; ...

随机推荐

  1. 《2019年上半年Web应用安全报告》发布:90%以上攻击流量来源于扫描器,IP身份不再可信

    Web应用安全依然是互联网安全的最大威胁来源之一,除了传统的网页和APP,API和各种小程序也作为新的流量入口快速崛起,更多的流量入口和更易用的调用方式在提高web应用开发效率的同时也带来了更多和更复 ...

  2. JavaCollection

    http://blog.csdn.net/itlwc/article/details/10148321 http://blog.sina.com.cn/s/blog_6d6f5d7d0100s9nu. ...

  3. JAVA-WEB-错误之-'OPTION SQL_SELECT_LIMIT=DEFAULT'

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version ...

  4. 关于JSP的淘汰问题(转)

    来源:http://1t.click/peD 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开.你要是这辈子就吃java这碗饭,就不要去研究什么css,js等等. 把你的 ...

  5. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...

  6. 外贸电子商务网站之Prestashop 语言包安装

    prestashop添加语言-下载语言包 我们找到中文简体(Chinese-Simplified)一行,点击最后一栏的下载(Download)按钮,我们点击下载,可以下到一个以语言的 ISO为文件名, ...

  7. QT语言翻译

    QT中多语言的实现方式: 1.代码中tr运用 2.使用工具生成ts文件 3.翻译ts文件 4.生成qm文件 5.程序加载 以下内容程序加载时放入即可. QString appPath = QCoreA ...

  8. 源码篇:MBProgressHUD

    源码来源:点此 版本:0.9.1 MBProgressHUD是一个显示HUD窗口的第三方类库,用于在执行一些后台任务时,在程序中显示一个表示进度的loading视图和两个可选的文本提示的HUD窗口.我 ...

  9. phpcms url路由规则、多站点、PC手机切换

    解决一个分站点pc手机共存的问题 首先需要有PC手机两套模板.通过修改url路由规则,在同一目录下生成PC手机两套静态网站,PC使用默认url路由规则,手机端使用文件名追加“_m”的路由规则. 然后通 ...

  10. 在laravel框架中使用ajax请求报错419

    laravel框架中报419 419 unknown status 这个时候你需要将这个接口放到api路由上,这样可以跳过CSRF的检查