没有合适的资源?快使用搜索试试~ 我知道了~
hb-zhyu的模拟队列
需积分: 1 0 下载量 158 浏览量
2024-01-23
13:05:39
上传
评论
收藏 14KB DOCX 举报
温馨提示
试读
2页
实现一个队列,队列初始为空,支持四种操作: push x – 向队尾插入一个数 xx; pop – 从队头弹出一个数; empty – 判断队列是否为空; query – 查询队头元素。 现在要对队列进行 MM 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。 输入格式 第一行包含整数 M,表示操作次数。 接下来 M 行,每行包含一个操作命令,操作命令为 push x,pop,empty,query 中的一种。 输出格式 对于每个 empty 和 query 操作都要输出一个查询结果,每个结果占一行。 其中,empty 操作的查询结果为 YES 或 NO,query 操作的查询结果为一个整数,表示队头元素的值。 数据范围 1≤M≤100000, 1≤x≤109, 所有操作保证合法。
资源推荐
资源详情
资源评论
_____________________________________________________________________________
一如既往的用数组模拟队列
写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不习惯用
_____________________________________________________________________________
题目要求的:
#include <bits/stdc++.h>
using namespace std;
int que[1000005],a=1,b,n,y;
string x;
void push(int x){将 x 加入队尾
que[++b]=x;
}
void pop(){删除队首
a++;
}
void query(){输出队首元素
cout<<que[a]<<endl;
}
void empty(){判断队列是否为空
if(b-a+1==0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(x[0]=='p'&&x[1]=='u'){
cin>>y;
push(y);
}
else if(x[0]=='p')pop();
else if(x[0]=='q')query();
else if(x[0]=='e')empty();
}
}
修改了 query 并增添了一些功能:
#include <bits/stdc++.h>
using namespace std;
int que[1000005],a=1,b,n,y;a 表示对首的位置,b 表示队尾的位置
string x;
void push(int x){将 x 加入队尾
资源评论
hb_zhyu
- 粉丝: 1042
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功