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

队列—学习

1. 手写队列的实现

使用数组实现队列是一种常见的方法。队列的基本操作包括入队(enqueue)和出队(dequeue)。队列的头部和尾部分别用 headtail 指针表示。

代码实现
const int N = 10000;  // 定义队列容量,确保够用
int que[N];           // 队列,用数组模拟
int head = 0;         // head始终指向队头。que[head]是队头。开始时队列为空,head = 0
int tail = -1;        // tail始终指向队尾。que[tail]是队尾。开始时队列为空,tail = -1
操作
  • 入队que[++tail] = data; 先将 tail 指针加1,然后将数据 data 放入队列。

  • 出队head++;head 指针加1,表示队头元素出队。

  • 读队头que[head]; 读取队头元素。

2. 数组溢出问题

如果队列中的数据过多,tail 超过数组容量 N,会导致数组溢出。为了避免这个问题,可以使用循环队列。

3. 约瑟夫问题的实现

约瑟夫问题可以通过队列来模拟报数过程。以下是实现代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 10000; 
int que[N];
int head = 0, tail = -1;int main() {int n, m;cin >> n >> m;for (int i = 1; i <= n; i++) {que[++tail] = i;  // 初始化队列,将所有人入队}while ((tail - head + 1) != 0) {  // 队列不为空for (int i = 1; i < m; i++) {  // 报数,将前m-1个人重新入队que[++tail] = que[head];head++;}cout << que[head] << " ";  // 输出第m个人head++;  // 第m个人出队}cout << endl;return 0;
}

4. 循环队列

为了避免数组溢出,可以使用循环队列。循环队列通过取模运算实现队列的循环使用。

循环队列的实现

5. 队列的查找问题

队列是一种线性数据结构,查找某个元素需要从头到尾逐个查找,时间复杂度为 O(n)。如果需要频繁查找元素,可以考虑使用其他数据结构,如哈希表或平衡树。

http://www.lryc.cn/news/530404.html

相关文章:

  • SpringBoot的配置(配置文件、加载顺序、配置原理)
  • 如何本地部署DeepSeek?DeepThink R1 本地部署全攻略:零基础小白指南。
  • 陆游的《诗人苦学说》:从藻绘到“功夫在诗外”(中英双语)mastery lies beyond poetry
  • Golang —协程池(panjf2000/ants/v2)
  • 在 crag 中用 LangGraph 进行评分知识精炼-下
  • 基于springboot+vue的哈利波特书影音互动科普网站
  • Cypher入门
  • 使用Z-score进行数据特征标准化
  • 初级数据结构:栈和队列
  • 【思维导图】java
  • Redis脑裂问题详解及解决方案
  • 玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱
  • 【Windows Server实战】生产环境云和NPS快速搭建
  • [ESP32:Vscode+PlatformIO]新建工程 常用配置与设置
  • 【NLP251】Transformer精讲 残差链接与层归一化
  • 康德哲学与自组织思想的渊源:从《判断力批判》到系统论的桥梁
  • SpringBoot 整合 SpringMVC:SpringMVC的注解管理
  • 松灵机器人 scout ros2 驱动 安装
  • 使用 Numpy 自定义数据集,使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • MapReduce简单应用(一)——WordCount
  • c语言(关键字)
  • 蓝桥杯思维训练营(一)
  • 【C语言】结构体对齐规则
  • 2025-工具集合整理
  • 快速提升网站收录:利用网站用户反馈机制
  • 图漾相机——Sample_V1示例程序
  • 如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?
  • HTML 字符实体
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror_init()函数
  • 【c++】类与对象详解