数组模拟队列

题目

代码

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100010;
int queue[N];
int hh = 0, tt = -1;
//[hh, tt] 之间为队列(左闭右闭)
//hh,tt无关联,将其分开看,两个参数各自有各自的意义。(tt相当于有了几个数)
void push_queue(int x)
{
queue[++tt] = x;
}
void pop_queue()
{
hh++;
}
int empty_queue()
{ // 1表示为空,0表示非空。
if (tt >= hh)
return 0;
else
return 1;
}
void query_queue()
{
printf("%d\n", queue[hh]);
}
int main()
{
int m, x;
string str;
cin >> m;
while (m--)
{
cin >> str;
if (str == "push")
{
cin >> x;
push_queue(x);
}
else if (str == "pop")
{
pop_queue();
}
else if (str == "empty")
{
if (empty_queue() == 1)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else if (str == "query")
{
query_queue();
}
}
return 0;
}
posted @   electricity111  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示