循环队列-队列的顺序表示和实现1

数据结构—队列的顺序表示和实现--循环队列 和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个整型变量 front和rear分别指示队列头元素及队列尾元素 1.队列的顺序表示 typedef struct { int *base; // 分配存储空间 int front; // 队头指针 int rear; // 队尾指针 }SqQueue; ... 阅读详情
/******************************************************************************/
// 循环队列-队列的顺序表示和实现1
/******************************************************************************/
#define Queue_SIZE        ((uint32_t)0x00000080)
#define Queue_SUCCESS     ((uint32_t)0x00000000)
#define Queue_OVERFLOW    ((uint32_t)0x00000001)
#define Queue_EMPTY       ((uint32_t)0x00000002)


typedef struct
{
    uint32_t        *buf;   //队列的起始地址
    uint32_t        head;   //读出数据的位置
    uint32_t        tail;   //写下一个数据的位置
    uint32_t        size;   //队列的大小
    uint32_t        length; //队列中已有元素的个数
} Queue_TypeDef;


static uint32_t gQueue_Buf[Queue_SIZE];


void Queue_Init(Queue_TypeDef *Queue) 
{
    Queue->buf = gQueue_Buf;
    Queue->tail = 0;
    Queue->head = 0;
    Queue->size = Queue_SIZE;
    Queue->length = 0;
}


uint32_t Queue_Put(Queue_TypeDef *Queue, uint32_t data)
{
    if (Queue->length == Queue_SIZE)
    {
        return Queue_OVERFLOW;
    }
    Queue->buf[Queue->tail] = data;
    Queue->tail++;


    if (Queue->tail == Queue->size)
    {
        Queue->tail = 0;
    }
    Queue->length++;
        
    return Queue_SUCCESS;
}


uint32_t Queue_Get(Queue_TypeDef *Queue)
{
    uint32_t data;


    if (Queue->length == 0)
    {
        return Queue_EMPTY;
    }
    data = Queue->buf[Queue->head];
    Queue->head++;


    if (Queue->head == Queue->size)
    {
        Queue->head = 0;
    }
    Queue->length--;
    return data;
}


void Queue_Empty(Queue_TypeDef *Queue)
{
    Queue->tail  = 0;
    Queue->head  = 0;
    Queue->length = 0;
}

c语言实现顺序循环队列 队列简称队,是一种操作受限的线性表,限制在于仅允许在表的一段进行插入操作,而在表的另一端进行删除操作。 进行插入的一段叫做队尾,进行删除的一端叫做队首,队又称作先入先出表。 队列到顺序表的映射如图: 采用顺序储存结构的队列成为顺序队。 ... 阅读详情

相关推荐

玉米群体遗传分析实战:如何用IQtree和VCF文件快速构建系统发育树(附避坑指南)

本文详细介绍了如何利用IQtree和VCF文件进行玉米群体遗传分析,并快速构建可靠的系统发育树。文章重点解析了从VCF格式转换到PHYLIP格式的实用技巧,强调了使用ASC模型校正SNP数据偏差的重要性,并提供了完整的参数设置、常见报错解决方案及结果评估指南,帮助研究者高效完成分析并规避常见陷阱。

leaf8的博客 607

循环队列的顺序结构及实现

循环队列 队列的头尾相连的顺序结构称为循环队列 1. 为何有循环队列 队列的不足 每次在队尾插入元素的时候插入位置前面的元素都得向前一位时间复杂度为O(n),每次插入都得移动 2.解决办法 不去移动元素,而去移动元素所在下标,将队列目前第一个元素所在角标作为队首 定义头指针front,与尾指针rear去进行移动 初始条件头尾指针都位于0处,插入时rear指针向后移动,出队时front...

weixin_45078869的博客 1175

不止于修改器:用Cheat Engine(CE)的Lua脚本和D3D Hook打造你的游戏辅助界面

本文深入探讨了Cheat Engine(CE)的高级功能,包括Lua脚本自动化和D3D Hook技术,帮助用户从基础内存扫描升级到开发具有专业图形界面的游戏辅助工具。通过实战示例和优化策略,展示了如何创建高效、稳定的游戏辅助系统,并打包为独立训练器。

weixin_28700411的博客 316

循环队列的原理及例子

       对于嵌入式产品来说,会经常的进行数据收发操作。当因为短时间内有多帧数据而处理不过来时,可将数据暂存在缓冲区来做处理。队列和链表是作为缓冲区比较好的方式,链表可指定相应的位置进行增删查改等操作,对于不经常插入和删除数据的操作比较有优势;而队列对于频繁进行FIFO的操作比较有优势。   理解循环队列     何谓循环队列?首先我们要说明的是循环队列仍然是基于数组实现的。但是为了形象...

卣生的博客 1万+

告别代码恐惧!用KRobot图形化编程,10分钟搞定Arduino巡线小车(附完整接线图)

本文介绍如何使用KRobot图形化编程工具快速搭建Arduino巡线小车,无需编写代码。从硬件准备到逻辑构建,详细讲解传感器数据处理、电机控制优化及高级功能扩展,帮助教育工作者和创客爱好者10分钟内完成项目。

weixin_30632089的博客 394

别再只会setStyleSheet了!Qt实现背景透明的5种方法全解析(附性能对比)

本文深入解析Qt实现背景透明的5种高阶方案,包括QPalette、setWindowOpacity、QGraphicsOpacityEffect、样式表和复合透明方案,并提供详细的性能对比与优化建议。针对不同平台和场景,帮助开发者选择最适合的透明效果实现方式,提升UI设计质量与性能表现。

weixin_27061475的博客 259

(图解)循环队列的三种判断队空、队满操作(附带源码和插入删除操作等一些基本操作)

一万字图解循环队列附带测试程序的源码

在夜里行走的博客 3万+

optee技术简介

OP-TEE(Open Portable Trusted Execution Environment)是一种开源的可信执行环境(TEE),专为ARM TrustZone架构设计。TEE是一种独立的执行环境,运行在主操作系统之外,为敏感任务提供安全的计算空间,如加密、身份验证、密钥管理等。

baron-周贺贺-代码改变世界ctw 1279

【408数据结构与算法】—队列的顺序表示和实现(十三)

将队空间设想成一个循坏的表,即分配给队列的m个存储单元可以循坏使用,当rear为maxqsize时,若向量的开始端空着,又可以从头使用空着的空间,当front为maxqsize时,也是一样。队列的物理存储可以用顺序存储结构,也可以使用链式存储结构,相应的,队列的存储方式也分为两种,即顺序队列和链式队列。越努力 越幸运,愿我们都能在看不见的日子里闪闪发光!缺点:浪费时间,每移动一次,队中的元素都要移动。将队中元素依次向队头方向移动。

道阻且长,行则将至。 673

【定位模块算法】amcl(蒙特卡洛)粒子滤波定位算法(附C++代码)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言(1)amcl定位框架介绍(2)amcl定位框架组成(1)ROS-TF坐标转换树【ROS的工具】(2)robot_pose_ekf扩展卡尔曼位姿估计算法(3)定位amcl自适应蒙特卡洛定位,adaptive monte carlo localizaion**(3)amcl定位节点的订阅与发布(4)amcl定位功能包用法(1)编写amcl节点相关的launch(amcl_omni.l

qq_35635374的博客 4402

Python爬虫实战:实时爬取东方财富网股票行情

东方财富网实时行情(价格、涨跌幅、成交量等)K线图、分时图、技术指标市盈率、换手率、总市值等指标相比某些收费API,东方财富网页端接口不需要登录、免费、响应快、封装清晰,适合爬虫实践。东方财富网股票数据接口分析实时数据抓取与字段提取数据结构化处理自动化批量抓取多线程加速采集数据可视化展示支持存储为CSV/Excel/数据库。

2201_76125261的博客 1万+

4_08_GLib库入门与实践_双端队列

简介 在Glib中,GQueue双端队列是由GList实现的一个队列结构,由于两端都可以push和pop,当从队列尾push从头pop时可看作队列,当从头push头pop时可看做栈。 数据结构 GQueue的数据结构 struct GQueue { GList *head; GList *tail; guint length; }; 函数列表 GQueue * g_queue_new () void g_queue_free () void g_queue_free_full () void

field1003的博客 1116

微信小程序 - 最新详细实现用户保存下载视频到手机相册,将视频临时路径、在线播放地址(网络路径)URL存储到手机,弹出访问手机相册权限询问,支持视频格式mp4、avi、mov、wmv、flv、webm

微信小程序,视频,手机相册,保存,另存为,小程序保存到相册权限,writePhotosAlbum,一键保存视频到手机相册功能(视频来源为链接),第一次要获取用户授权,授权使用相册权限,小程序视频下载,如何把视频下载到相册,下载一个视频到本地相册,显示下载进度,可取消下载,视频下载到本地,微信小程序视频如何下载,保存视频到相机,页面播放视频并下载到本地,安卓系统,苹果ios保存到相册报错,权限拒绝后打不开,添加相册授权弹框拒绝后再也出不来了,实现保存视频到手机相册功能,将mp4在线视频下载并存储到用户的手机中

🏆 前端领域优质创作者 7623

数据结构之顺序循环队列的基本操作(非常详细C语言版)

----------------------✨🎉🎈==!!!热烈欢迎各位大佬!!!==🎈🎉✨--------------------- 🍹作者: BooleanChar12 ✨博客主页: BooleanChar12的博客 💘很喜欢的一句话: Because we all stand on the shoulders of giants. 🥂如有bug和疑惑欢迎大家与我🤺 😍觉得博主文章写的不错的话,希望大家三连(🎉关注,🎉点赞,🎉评论),多多支持一下!! ------------------------

永不秃头的George的博客 552

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

《循环队列---队列的顺序表示和实现》

//循环队列---队列的顺序表示和实现 #include<stdio.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MAXQSIZE 50 //最大队列长度ty...

192

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

队列的链式表示和实现----循环队列

循环队列----队列的顺序表示和实现

烽火前秦路 1488

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

《数据结构》顺序队列的表示和实现(循环队列)

队列是仅在表尾部进行插入操作,在表头进行删除操作的线性表。表尾即 an 端,称为队尾,表头即 a1 端,称为队头。它是一种先进先出 (FIFO) 的线性表存储结构队列的存储结构分为链式队列和顺序队列 (常用循环顺序队列)

tyustli 787

循环队列——队列的顺序表示与实现(c语言)

顺序实现循环队列代码如下://用顺序实现循环队列的基本操作 //之所以使用循环队列是为了减少空间浪费 #include<stdio.h> #include<malloc.h> #define MAXSIZE 100struct Queue{ int *base; int front; int rear; };struct Queue InitQueue(); int QueueLength(stru

hg_zhh 1154

//使用顺序表实现循环队列的入队和出队

//使用顺序表实现循环队列的入队和出队 #include<iostream>using namespace std;const int MAX_SIZE = 100; typedef struct Queue { int q[MAX_SIZE]; int front; int rear; }*Queue;void enqueue(Queue &Q,int x) { i

黑白格的博客 2420

C++数据结构:循环队列基本运算的实现

实验要求 编写一个程序,以菜单形式实现循环队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能: (1)初始化空队列 (2)建立循环队列 (3)入队 (4)出队 (5)判断队列是否为空,为空返回1,否则返回0 (6)判断队列是否为满,为满返回1,否则返回0 (7)取队头元素 (8)求队列的元素个数,并返回 (9)遍历输出队列元素 代码内容 #include<iostream> using namespace std; #define maxsize 10 //宏定义循环队列最大存储空间

qq_54388490的博客 4194

循环队列——队列的顺序表示和实现

參考书目:《数据结构(C语言版)》,严蔚敏         怎样将《数据结构》中的知识应用到如今的工作中呢(单片机C编程、数字信号处理算法),希望在这里可以得到各位的指点。这个程序是我自己用循环队列实现了一个简单的应用模型(得益于一位童鞋的启示)。这里高手如云,希望可以得到很多其它的指点啊! common.h #ifndef _COMMON_H_ #define _COMMON_H...

weixin_33807284的博客 209

栈和队列的操作三——队列的顺序存储(循环队列)

下面是完整代码:😀emm...还是画个图熟悉一下顺序队列长什么样子吧。

m0_72619231的博客 743

《数据结构初阶》实现顺序循环队列和链式队列

数组实现循环队列、单链表实现队列接口实现全解

m0_62171658的博客 4355

顺序队和循环队列,队列篇(顺序队和循环队列入队出队操作)

数据结构专升本学习,队列篇(顺序队和循环队列) 前言: 之前我们把栈学完了,比较简单,今天我们学习队列里面的顺序队和循环队列,说难不难,说简单不简单,我们需要认真学习,博主会尽力把原理和逻辑讲明白,不懂的童鞋可以认真多看几遍,博主真的很想教会大家。希望大家认真看,有问题的地方可以评论提出来,希望大家,喜欢。 每日一遍,防止早恋: 1.什么是队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进

qq_46104786的博客 1万+

队列(顺序队列,循环队列,链式队列)超详细讲解

本文是队列(包括顺序队列,循环队列,栈式队列的详细讲解)

m0_56992713的博客 5721

【数据结构】循环队列的实现

>✨给大家推荐一款很火爆的刷题、面试求职网站✨

记录学习点滴 5485
上一篇: 用位段、宏分别实现寄存器的位定义
下一篇: 循环队列-队列的顺序表示和实现2
lne8734
博客等级 码龄10年 7粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值