【算法基础19-模拟队列】

news/2025/3/31 20:23:33/

模拟队列

算法示意图

算法的伪代码

 例题

实现一个队列,队列初始为空,支持四种操作:

  1. push x – 向队尾插入一个数 x;
  2. pop – 从队头弹出一个数;
  3. empty – 判断队列是否为空;
  4. query – 查询队头元素。

现在要对队列进行 M个操作,其中的每个操作 3 和操作 4都要输出相应的结果。

输入格式

第一行包含整数 M,表示操作次数。

接下来 M行,每行包含一个操作命令,操作命令为 push xpopemptyquery 中的一种。

输出格式

对于每个 emptyquery 操作都要输出一个查询结果,每个结果占一行。

其中,empty 操作的查询结果为 YESNOquery 操作的查询结果为一个整数,表示队头元素的值。

数据范围

1≤M≤100000,
1≤x≤109,
所有操作保证合法。

输入样例:

10
push 6
empty
query
pop
empty
push 3
push 4
pop
query
push 6

输出样例:

NO
6
YES
4

代码实现

#include<iostream>
using namespace std;
const int maxn = 1000001;
int q[maxn],hh,tt=-1;int main(){int M,k;string s;cin>>M;while(M --){cin>>s;if(s == "push"){cin>>k;q[++ tt] = k;}else if(s == "pop"){hh = hh + 1;}else if(s == "empty"){if(hh <= tt){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;}}else{cout<<q[hh]<<endl;}}return 0;
}


http://www.ppmy.cn/news/1027606.html

相关文章

第一章:计算机与编程导论

1.1引言 如何解决问题&#xff1a;通过一组精确陈述的指令来设计问题的解决方案。 程序&#xff1a;一组指令以计算机可以接收和执行的格式描述时。 例如&#xff1a;百货商店管理&#xff0c;编写一套指令&#xff0c;在商品购进和售出时对其跟踪。如果这些指令是正确的&…

华为OD真题--新学习选址--带答案

2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09;or2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 为了解新学期学生暴涨的问题,小乐村要建立所新学校 考虑到学生上学安全问题,需要所有学生家到学校的…

QGIS3.28的二次开发七:创建地图工具

地图工具是输入设备&#xff08;一般指鼠标与键盘&#xff09;与画布&#xff08;QgsMapCanvas&#xff09;的交互接口。它负责处理所有用户通过输入设备&#xff08;鼠标和键盘&#xff09;和画布互动的操作&#xff0c;例如镜头控制、要素绘制、标识工具等。 QgsMapTool 是地…

Spannable配合AnimationDrawable实现TextView中展示Gif图片

辣的原理解释&#xff0c;反正大家也不爱看&#xff0c;所以直接上代码了 长这样&#xff0c;下面两个图是gif&#xff0c;会动的。 package com.example.myapplication;import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable…

Linux 终端命令之文件浏览(2) more

Linux 文件浏览命令 cat, more, less, head, tail&#xff0c;此五个文件浏览类的命令皆为外部命令。 hannHannYang:~$ which cat /usr/bin/cat hannHannYang:~$ which more /usr/bin/more hannHannYang:~$ which less /usr/bin/less hannHannYang:~$ which head /usr/bin/he…

c语言——斐波那契数列应用

//斐波那契数列应用 #include<stdio.h> int main() {int i,n,t10,t21,nextTerm;printf("输出项目数&#xff1a;");scanf("%d",&n);printf("斐波那契数列应用&#xff1a;");for(i1;i<n;i){printf("%d、",t1);nextTermt1…

RTT(RT-Thread)线程间同步(保姆级)

目录 线程间同步 信号量 信号量结构体 信号量的使用和管理 动态创建信号量 实例 静态创建信号量 初始化和脱离信号量 获取信号量 信号量的互斥操作 获取信号量函数 释放信号量 信号量同步实例 互斥量&#xff08;互斥锁&#xff09; 互斥量的使用和管理 动态创…

LTE和5G无线技术对比简介

LTE和5G是两种不同的无线通信技术&#xff0c;它们在速度、延迟、容量、覆盖范围和设备兼容性等方面存在差异。 LTE&#xff0c;即长期演进技术&#xff0c;是一种基于OFDMA的4G蜂窝网络标准&#xff0c;由3GPP组织制定并发布。它的主要目的是改进3G的空中接入技术&#xff0c;…