4.5 队列实现及其应用(上)

news2024/10/5 21:16:20

目录

 顺序队列

创建空队列:

判断队列空:

入队:


队列

队列是限制在两端进行插入操作和删除操作的线性表 允许进行存入操作的一端称为“队尾” 允许进行删除操作的一端称为“队头” 当线性表中没有元素时,称为“空队” 特点 :先进先出(FIFO)

创建队列 :CreateQueue ()

清空队列 :ClearQueue (Q)

判断队列空 :EmptyQueue(Q)

判断队列满 :FullQueue(Q)

入队 :EnQueue (Q , x)

出队 :DeQueue(Q)

 顺序队列

     typedef  int  data_t ;    /*定义队列中数据元素的数据类型*/

#define  N  64        /*定义队列的容量*/

typedef  struct {

      data_t  data[N] ;   /*用数组作为队列的储存空间*/

      int  front, rear ;     /*指示队头位置和队尾位置的指针*/

} sequeue_t ;          /*顺序队列类型定义*/

规定:front指向队头元素的位置; rear指向队尾元素的下一个位置。

在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。

为区别空队和满队,满队元素个数比数组元素个数少一个。

创建空队列:

sequeue_t  *CreateQueue () {

      sequeue_t  *sq = (sequeue_t *)malloc(sizeof(sequeue_t));

      sq->front = sq->rear = maxsize -1;

      return  sq;

}

判断队列空:

int   EmptyQueue (sequeue_t *sq)  {

      return (sq->front  = =  sq->rear) ;

}

入队:

将新数据元素x插入到队列的尾部。

void   EnQueue (sequeue_t *sq , data_t x) {

     sq->data[sq->rear] = x ;

      sq->rear = (sq->rear + 1) % N ;

            return ;

}

规定:

front指向队头元素的位置;

rear指向队尾元素的下一个位置。

在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。

为区别空队和满队,满队元素个数比数组元素个数少一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/517073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监控室值班人员脱岗识别算法 opencv

监控室值班人员脱岗识别算法模型通过pythonopencv网络深度学校模型技术,监控室值班人员脱岗识别算法模型实现企业总监控室值班人员脱岗、睡岗、玩手机等场景的AI识别,不需人为干预全天候自动识别。OpenCV的全称是Open Source Computer Vision Library&am…

git码云的使用-创建项目仓库-ssh协议配置步骤

目录 1、创建仓库 1.1 只填入仓库名即可-提交 1.2 本地项目上传到远程仓库 2、提交仓库 2.1 选择HTTPS协议 2.2 选择ssh协议 3、ssh协议配置步骤 3.1 打开 Git Bash 3.2 生成公钥:$ cd ~/.ssh (可忽略) 3.3 生成密钥 3.4 添加公钥…

【零基础QQ机器人开发三】程序上云篇

前言:本文为大家带来QQ机器人程序上云的教程,环境搭建请参考下面链接 【0基础QQ机器人开发】基于go-cqhttp的QQ机器人开发教程,仅供自学 【零基础QQ机器人开发二】服务器篇 文章目录 程序Logger类StatuStore类MultiFunc类QQBot类main.py 前言&#xff1a…

AP3266 DC-DC大功率同步降压恒流芯片 过EMC三级 摩托电动汽车灯IC

1,产品描述 AP3266 是高效率、外围简单、内置功率管的同步降压恒流芯片,适用于4-40V输入的降压LED恒流驱动芯片。输出功率可达 40W,电流3.6A。AP3266 可通过调节 OVP 端口的分压电阻,设定输出空载电压 保护,避免高压 空…

DenseNet与ResNet

ResNet(深度残差网络) 深度残差网络 DenseNet 采用密集连接机制,即互相连接所有的层,每个层都会与前面所有层在channel维度上连接在一起,实现特征重用,作为下一层的输入。 这样不但缓解了梯度消失的现象…

2023数维杯数学建模ABC题思路分析

占个位置吧,开始在本帖实时更新数维杯数学建模赛题思路代码,文章末尾获取! 持续为更新参考思路 赛题思路 已完成全部可以领取,详情看文末!!! 数维杯A题思路 A题是这次比赛比较难的题目&…

AI落地:如何用AI做出可用的PPT?

ChatGPT问世以来,很多工具都有了AI版。原来让我们头疼的PPT,这不现在也能一键生成了。 看了网友分享的各种一键生成PPT技术,真是牛。 很快没错,但是。。。缺点你是一句不提啊。 PPT做成这样,这要是直接用&#xff0c…

【MATLAB图像处理实用案例详解(8)】—— 图像数字水印算法

目录 一、背景意义二、基本原理三、算法介绍3.1 数字水印嵌入3.2 数字水印提取 四、程序实现 一、背景意义 数字水印技术作为信息隐藏技术的一个重要分支,是将信息(水印)隐藏于数字图像、视频、音频及文本文档等数字媒体中,从而实现隐秘传输、存储、标注…

基于等照度线和窗口匹配的图像修补算法

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、关于图像修补 图像修补的目的是基于已有的图像信息或数据库内信息,对缺失区域进行合理地修复。在诸多领域如电影、…

35个开源的工业软件-工业4.0

不同的工业流程,需要不同的工业软件。面向研发设计环节的开源软件,今天就来介绍一下面向生产控制环节的开源软件,主要为可编程逻辑控制器(PLC)、分布式控制系统(DCS)、生产执行系统(MES&#xf…

以“阵地战”打法,多样性算力攻坚数字经济基础设施

作者 | 曾响铃 文 | 响铃说 人人都知道数字化转型进入深水区后,对算力的渴求在不断增长。 包括政务、能源、金融、制造业等领域的数字化转型铆足了劲头,不断向那些数字基础设施索要源源不断的算力。 但是,更应该注意到的是,在…

Debian 12 “Bookworm” 的新特性和发布日期

导读Debian 12 即将发布。了解一下更多关于其新特性和发布日期的相关信息。 debian 12 Debian 即将发布系统代号为 “书虫” 的新版本。与 Debian 11 “Bullseye” 相比,有许多改进和新功能。 Debian 12 “Bookworm” 包含了超过 11200 个新软件包,软件…

泰克RSA306B频谱分析仪测试信道功率方法

泰克RSA306B实时频谱分析仪是一种用于无线信号分析的仪器。它可以实时监控无线信号的频谱,帮助用户分析信号特征,掌握信号的功率、频率、调制等关键信息。在无线通信中,信道功率是一个非常重要的指标,它反映了信号在传输过程中的强…

基于matlab使用广义互相关和三角测量来确定宽带信号源的位置

一、前言 此示例说明如何使用广义互相关 (GCC) 和三角测量来确定宽带信号源的位置。为简单起见,此示例仅限于由一个源和两个接收传感器阵列组成的二维方案。您可以将此方法扩展到两个以上的传感器或传感器阵列以及三维。 二、介绍 源定位不同…

速锐得工业物联网技术无线自动化解决方案在物流业的应用

物流业一直走在工业物联网的最前沿,因为许多工业物联网的机会和技术与物流业完美匹配。因此,物流业多年依赖一直使用许多工业物联网相关的传感器和技术。 例如,多年来,物流业一直在包装、托盘和集装箱中使用条形码,从9…

Redis(18. 面试题简析)学习笔记

上一篇 :17. Redis 分布式锁 - 周阳 下一篇 :18. 面试题简析 文章目录 1. 为什么要用缓存?2. redis 和 memcached 有什么区别?3. redis 的线程模型4. 为啥 redis 单线程模型也能效率这么高?5. redis 都有哪些数据类型…

CodeArts持续发力输出,华为云重塑软件开发

配图来自Canva可画 互联网时代,软件技术对企业成功的助益越来越明显。不管是为了顺遂大众趋势,还是迫于生存压力,可以确定的是,目前各类软件的开发已经被纳入众多企业的发展规划当中。 只是,长期以来国内软件行业一直…

机器学习回归任务指标评价及Sklearn神经网络模型评价实践

机器学习回归模型评价是指对回归模型的性能进行评估,以便选择最佳的回归模型。其中,MAE、MSE、RMSE 用于衡量模型预测值与真实值之间的误差大小,R 用于衡量模型对数据的拟合程度。在实际应用中,我们可以使用这些指标来评估回归模型…

git 撤销中间某次提交,保留其他提交的方法

今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了&…

Revit插件 | 精装模块15个新功能正式上线,快来体验

大家好,这里是建模助手。 建模助手建模、算量、出图,一站搞定的——精装模块,正式上线了! 简单来说,精装模块就是辅助用户快速搭建精装修模型,便于后续的模型渲染、出量、出图工作。 目前暂时上线15个功能&#xff0…