当前位置: 首页 > news >正文

队列

队列是一种 先进先出(First-In, First-Out, FIFO) 的数据结构。可以把它想想成现实生活中的排队。

  • 入队(Enqueue/Push):新来的人总是站到队伍的末尾
  • 出队(Dequeue/Pop):每次办理业务的总是站在队伍最前面的人。
  • 队头(Front):队伍的最前面。
  • 队尾(Back/Rear):队伍的末尾。

image


数组实现

最直接、最朴素的实现队列的想法是什么?

  1. 准备一个足够大的数组 q
  2. 用一个指针 tail(队尾)来记录新元素应该插入的位置。每次入队,tail 就向后移动。
  3. 用一个指针 head(队头)来记录队头元素的位置。每次出队,head 就向后移动。

选择题:下述代码实现的数据结构是

int data[100], f = 1, r;
void insert(int value) {data[++r] = value;
}
void pop() {f++;
}

A. 链表
B. 栈
C. 队列
D. 平衡树

答案

C


P1540

#include <cstdio>
#include <queue>
using std::queue;
const int N = 1005;
bool inq[N]; // inq[i]表示i是否在队列中
int main()
{int m, n; scanf("%d%d",&m,&n);queue<int> q;int cnt=0; // 队列中元素个数int ans=0;for (int i=1;i<=n;i++) {int x; scanf("%d",&x);if (!inq[x]) {if (cnt>=m) {inq[q.front()]=false;cnt--;q.pop();} q.push(x); inq[x]=true; cnt++;ans++;}}printf("%d\n",ans);return 0;
}

P2058

#include <cstdio>
#include <queue>
using std::queue;
const int N = 1e5 + 5;
struct Person {int t, id;
};
int cnt[N]; // cnt[i] i国家的人在船上有多少个
int main()
{queue<Person> q;int n; scanf("%d",&n);int ans=0; // 船上不同国籍数for (int i=1;i<=n;i++) {int t,k; scanf("%d%d",&t,&k);// 上船for (int j=1;j<=k;j++) {int x; scanf("%d",&x);q.push({t,x}); cnt[x]++;if (cnt[x]==1) { // 只有0->1说明国籍数+1ans++;}}// 一天前的人下船while (q.front().t <= t-86400) {int x=q.front().id;cnt[x]--;if (cnt[x]==0) { // 只有1->0说明国籍数-1ans--;}q.pop();}printf("%d\n",ans);}return 0;
}
http://www.jsqmd.com/news/194350/

相关文章:

  • 导师严选2026 AI论文软件TOP9:自考毕业论文必备测评
  • AT_fps_24
  • 微融资投资管理系统平台springboot vue
  • 【Kubernetes亲和性】一文掌握pod的亲和性和调度策略
  • 12.31 事件监听(二)
  • 校园二手图书网站springboot vue
  • 深圳助听器生产厂家推荐:扎根科创沃土的助听标杆 - 黑马榜单
  • 琴行乐器吉他商城管理系统vue springboot
  • VirtualBox复制粘贴终极指南:实现Ubuntu与Windows文本共享(小白也能懂)
  • 后端开发者快速上手AI Agent:基于Astron的极简概念、架构与部署教程
  • 2026哪个(副)主任药师考试培训机构靠谱?4家培训机构深度测评 - 医考机构品牌测评专家
  • 解决VSCodeServer在CentOS 7上运行问题:glibc 2.17升级与内核优化指南(2025最新版)
  • Android最简化发布模块到mavenCentral
  • 应变2026:(副)主任药师考试98%考生关注的靠谱机构测评 - 医考机构品牌测评专家
  • 出海行业热点 | 苹果App Store搜索结果将新增更多广告位、《燕云十六声》国际服玩家突破1500万
  • Playwright文件上传与下载测试完全指南
  • 破除信息差!五大(副)主任药师靠谱培训机构深度横评 - 医考机构品牌测评专家
  • (副)主任技师考试十大医考机构排名:2026靠谱机构推荐 - 医考机构品牌测评专家
  • 应用——Web服务器项目代码解析
  • 行业热点资讯 | 3200万!鸿蒙生态爆发!豆包DAU破亿,阿里升级新一代语音模型Qwen3-TTS
  • 2026最新延吉炸鸡本土品牌top5推荐!延吉本地特色,延边大学等地优质餐饮店及加盟连锁品牌深度解析/选择指南,匠心品质与地道风味助力味蕾盛宴 - 全局中转站
  • AdMergeX 增长洞察月刊:十二月回顾与展望
  • 软件体系架构课堂测试–架构分析
  • 三款主治医师刷题 APP 实测:2026 实战提分工具优选 - 医考机构品牌测评专家
  • 净现值计算
  • WRF模拟:搭建天气实验室、处理GFS/ERA5驱动场、运行台风暴雨案例、修改土地利用与地形、设计敏感性试验与Python专业分析等
  • 败者树是一种完全二叉树结构,用于高效选出多个归并段当前元素中的最小关键字对应段号
  • 污染物在土壤-地下水系统中的完整迁移路径:从概念模型构建到风险管控决策——深度解读T/LNSES 004技术指南与重金属/有机物迁移预测全流程,适用于污染场地评估、修复工程、地下水保护
  • 股指期货 API 入门指南:如何获取实时行情与构建交易系统
  • 计算机软件按功能分为两大类:系统软件和应用软件