P1030 队列的基本操作
题目描述
现在给你一个队列,它一开始是空的,你需要模拟队列的操作。队列的操作包括如下:
- “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;
- “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;
- “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
- “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
- “size”,输出当前队列中元素的个数。
输入格式
第一行一个正整数 n (1≤n≤100000),用于表示操作的数量。
接下来 n 行,每行可能是如下结构:
- “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;
- “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;
- “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
- “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;
- “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 队列的基本操作的更多相关文章
- 二、 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek)
请指教交流! package com.it.hxs.c01; import java.util.Stack; /* 编写一个类,用两个栈实现队列,支持队列的基本操作(add,poll,peek) */ ...
- D_S 循环队列的基本操作
// main.cpp #include <iostream> using namespace std; #include "Status.h" typedef in ...
- 队列模拟基本操作I
看到这道题,第一个想法就是“搜索”!“回溯”!的确,这种思路是很正确的,BFS和DFS都可以来解决: #include <cstdlib> #include <cstring> ...
- C++中栈和队列的基本操作
栈操作: s.push(item) // 将item压入栈中 s.pop() // 删除栈顶元素,不返回值 s.top() // 读取栈顶元素,返回 ...
- C++ STL 学习笔记__(6)优先级队列priority_queue基本操作
10.2.7优先级队列priority_queue v 最大值优先级队列.最小值优先级队列 v 优先级队列适配器 STL priority_queue v 用来开发一些特殊的应用,请对stl的类 ...
- c语言描述的链队列的基本操作
#include<stdio.h> #include<stdlib.h> #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...
- c语言实现队列的基本操作
话不多说,直接代码 #include"stdio.h" #include"stdlib.h" typedef struct QNode{ int date; s ...
- 实现队列的基本操作(数据结构)-python版
class Queue: def __init__(self): self.entries = [] self.length = 0 self.front = 0 def put(self, item ...
- c++用类写栈和队列的简单基本操作(实验)
继续更文.这次用类来写栈和队列,都是用数组模拟的: 以下是栈和队列的定义: 然后分别是栈和队列的类: 完整代码贴上: 栈 //使用类来定义栈 class ZHAN { public: STACK s; ...
随机推荐
- MSSQL 为db创建user
use [IBatisNet]GO if not exists (select * from master.dbo.syslogins where loginname = N'IBatisNet')B ...
- 阿里巴巴资深技术专家无相:我们能从 InteliJ IDEA 中学到什么?
本文来源于阿里巴巴资深技术专家无相在内网的分享,阿里巴巴中间件受权发布. 最近因为工作的关系,要将 Eclipse 的插件升级为 IDEA 插件.升级过程中,对 IDEA 插件做了些学习和研究,希望通 ...
- MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功能
混合云数据库管理(HDM)的统一监控.告警.诊断功能新增了对MongoDB的支持. 通过直观的方式将MongoDB多个维度的负载信息统一整合,不仅可以清晰的查看实时负载信息,也可以方便的确认历史负载情 ...
- 【AtCoder Regular Contest 092】C.2D Plane 2N Points【匈牙利算法】
C.2D Plane 2N Points 题意:给定N个红点二维坐标N个蓝点二维坐标,如果红点横纵坐标都比蓝点小,那么它们能够构成一组.问最多能构成多少组. 题解:把满足要求的红蓝点连线,然后就是匈牙 ...
- 【windows系统下的navicat与ubuntu中的mysql的连接方法】
##红色代码直接复制到终端 1.首先,终端上mysql -u root -p,进入你的mysql数据库,操作数据库use mysql.2.切换root权限:sudo -i3.对root授权,输入:gr ...
- Java练习 SDUT-2053_整理音乐
整理音乐 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 请用链表完成下面题目要求. xiaobai 很喜欢音乐,几年来 ...
- CNN对位移、尺度和旋转不变性的讨论
CNN得益于全局共享权值和pool操作,具有平移不变性. 对于尺度不变性,是没有或者说具有一定的不变性(尺度变化不大),实验中小目标的检测是难点,需要采用FPN或者其他的方式单独处理. 对于旋转不变性 ...
- 一 linux安装python3
参考 https://www.cnblogs.com/pyyu/p/7402145.html?tdsourcetag=s_pcqq_aiomsg 1 下载 网址:https://www.python. ...
- 读取Excel文件的两种方法比较 以及用NPOI写入Excel
1. 采用NPOI方式,只需引用NPOI.dll,但目前最高只能到2.4.0版. 缺点:只支持.xls,不支持.xlsx格式.github上的2.4.1版支持.xlsx,但总提示缺ICSharpCod ...
- 从零学React Native之05混合开发
本篇文章,我们主要讨论如何实现Android平台的混合开发. RN给Android端发送消息 首先打开Android Studio, Open工程, 在React Native项目目录下选择andro ...