#include<stdio.h>
#include<stdlib.h>
typedef struct Queue
{
int *pBase;
int front;
int rear;
}QUEUE;
void init(QUEUE *);//初始化
int en_queue(QUEUE *, int val);//入队
void traverse_queue(QUEUE *);
int full_queue(QUEUE *);
int out_queue(QUEUE *, int *pVal);//出队
int empty_queue(QUEUE *);
int main()
{
QUEUE Q;
init(&Q);
int val;
en_queue(&Q, 1);
en_queue(&Q, 2);
en_queue(&Q, 3);
en_queue(&Q, 4);
en_queue(&Q, 5);
en_queue(&Q, 6);
en_queue(&Q, 7);
en_queue(&Q, 8);
traverse_queue(&Q);
if(out_queue(&Q, &val))
{
printf("\noutput queue succeeded! The output queue element is %d.\n",val);
}
else
printf("output queue failed!");
traverse_queue(&Q);
return 0;
}
int full_queue(QUEUE *pQ)
{
if((pQ->rear + 1)%6 == pQ->front)
return 1;
else
return 0;
}
void init(QUEUE *pQ)
{
pQ->pBase = (int *)malloc(sizeof(int)*6);
pQ->front = 0;
pQ->rear = 0;
}
int en_queue(QUEUE *pQ, int val)
{
if(full_queue(pQ))
{
return 0;
}
else
{
pQ->pBase[pQ->rear] = val;
pQ->rear = (pQ->rear + 1)%6;
return 1;
}
}
void traverse_queue(QUEUE *pQ)
{
int i = pQ->front;
while(i != pQ->rear)
{
printf("%d ", pQ->pBase[i]);
i = (i+1)%6;
}
return;
}
int empty_queue(QUEUE *pQ)
{
if(pQ->front == pQ->rear)
return 1;
else
return 0;
}
int out_queue(QUEUE *pQ, int *pVal)
{
if(empty_queue(pQ))
return 0;
else
{
*pVal = pQ->pBase[pQ->front];
pQ->front = (pQ->front+1)%6;
return 1;
}
}
相关推荐
北斗三号PPP-B2b信号实战指南:从接收机配置到精度验证全流程
本文提供了北斗三号PPP-B2b信号从硬件配置到数据处理的全流程实战指南。详细解析了信号特性、接收机关键参数设置,并以飞纳接收机和Mass软件为例,演示了数据解算与精度验证方法。通过覆盖中国多地区的联调测试案例,验证了PPP-B2b服务可实现分米级实时定位精度,为无网络地区高精度应用提供了可靠解决方案。
详解循环队列
本次学习了循环队列,了解了循环队列的入队,出队,队空,队满等基本操作,明白了循环队列的优点在于其高效的插入和删除操作,但需要注意的是在实现时需要处理满队列和空队列的情况。按照正常逻辑,计算队列长度只需要队尾减去队头即可,但是由于是循环队列,可能存在front大,rear小运算得出负数的情况,所以必须通过加上MAXSIZE再取余保证队列的大小为正数。,当队尾指针“追上”队头指针时,队列不再继续增长,而是继续利用之前出队的空间。需要预留一个空间来区分队列为空和队列满的状态,队列满的条件为。
五大经典遥感数据集对比:LoveDA、Potsdam、Toronto、Vaihingen、Massachusetts Roads选哪个?
本文深度对比了LoveDA、Potsdam、Vaihingen、Toronto和Massachusetts Roads五大经典遥感数据集。针对城市监测、道路提取、土地分类等不同任务,从分辨率、标注质量、数据规模及场景多样性等核心维度进行分析,为研究者根据项目目标、硬件条件与应用场景选择最合适的遥感数据集提供决策指南。
【数据结构与算法 2】循环队列
一、队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。 二、循环队列
3DGS-to-PC实战指南:零代码实现3D高斯场景到点云/Mesh的高效转换
本文详细介绍了3DGS-to-PC工具如何实现3D高斯场景到点云/Mesh的高效转换,无需代码即可完成。通过实战案例和参数调优技巧,帮助用户快速掌握这一开源插件的使用方法,提升3D数据处理效率。特别适合建筑扫描、影视特效等领域的专业人士。
解决 NLPIR (中科院分词) License 过期问题
因为学习需要,使用到了中文分词技术,网上搜索一番,最终选择了名气比较大的中科院分词器(NLPIR/ICTCLAS)。 用了几个月之后突然报错: E:\code\URLClassifier\Data\NLPIR.user Not valid license or your license expired! Please feel free to contact pipy_zhan
如何设计一个循环队列
文章目录前言一、思路二、代码实现1.MyCircularQueue(k) 构造方法2.Front 从队首获取元素3.Rear 获取队尾元素4.enQueue(value) 向循环队列插入一个元素5.deQueue():从循环队列中删除一个元素6.isEmpty() 判断循环队列是否为空7.isFull() 检查循环队列是否已满三、所有代码总结 前言 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。
动力锂电池-二阶RC模型等效电路-RLS参数辨识-Simulink
1.锂电池二阶RC等效电路模型
数据结构——循环队列
4.2.循环队列功能实现 循环队列特点 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。 循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进入队运算时,只需要存储空间的第一个位置空闲,便可将元素加入到
FPGA 上的 YOLOv8 实时目标检测:从模型优化到硬件加速全解析
本文全面解析了将YOLOv8目标检测模型部署到FPGA进行硬件加速的完整流程。通过模型裁剪、混合精度量化等优化手段,结合HLS设计专用计算引擎与数据流,实现了高能效比的实时推理。文章深入探讨了软硬协同部署、性能调试与优化技巧,为追求极致实时性与低功耗的边缘AI应用提供了从算法到硬件的实战指南。
AUTOSAR 导入DBC ISOLAR工程配置
ISOLAR工程配置-dbc导入
循环队列(Circular Queue)
循环队列(Circular Queue) 1. 循环队列的概念 1.1 循环队列的定义 为了能够充分地使用数组中的存储空间,克服”假溢出”现象,可以把数组的前端和后端连接起来,形成一个环形的表,即把存储队列元素的表从逻辑上看成一个环,成为循环队列(circular queue)。 1.2 循环队列中各元素的逻辑及存储关系 循环队列的首尾相接,当队头指针front和队尾指针rear进到maxSize-1后,再前
工程级 RK3588 YOLOv5 Android 架构拆解:NPU 量化优化 + 多线程推理 + 跟踪算法源码
本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。
(C语言)数据结构代码实现笔记2:顺序栈和循环队列的构造及基本操作的实现
#include<stdio.h> #include<stdlib.h> #include<string.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef int Status; typedef char ET; #define MAXSIZE 100 ///////////////栈///////////////// //栈的存储结构 typedef struct stack { ET *.
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
【数据结构】循环队列的实现
>✨给大家推荐一款很火爆的刷题、面试求职网站✨
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
【LeetCode】—— 设计循环队列LeetCode622题
循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 你的实现应该支持如下操作: MyCircularQueue(k): 构...
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
设计循环队列
问题描述 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 你的实现应该支持如下操作:...
Leetcode 设计循环队列
设计循环队列 原题链接:点击传送 题目描述: 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 ...
循环队列
为充分利用向量空间,克服”假溢出”现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。 数组队列的时间复杂度为O(n),循环队列的时间复杂度为O(1)。代码实现: 1 2 3 4 5 6 7 8 9 ...
C++类模板实现循环队列
以下是本人用C++类模板实现的一种数据结构——循环队列。希望对人们有所帮助,也希望人们提出宝贵的意见! //循环队列 #ifndef _QUEUE_H_INCLUDED #define _QUEUE_H_INCLUDED template class _queue { public: _queue(size_t _capacity = 1):
2021-07-07循环队列以及双端循环队列
leetcode每日一题之设计循环队列以及双端循环队列 1.设计循环队列 **题目链接:**https://leetcode-cn.com/problems/design-circular-queue/ 题目描述: 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有
LeetCode622 设计循环队列
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作: MyC...
(C语言)用面向对象的方式实现循环队列
#(C语言)用面向对象的方式实现循坏队列 作者: bluce 日期:2019.12.31 ##circle_queue.h #include <stdbool.h> #include <string.h> #include "cir_queue.h" #include <windows.h> ...
三 基于Java数组手写循环队列
Code: package dataStucture2.stackandqueue; /** * 手写循环队列 * * @author 李腾 * * @param <E> */ public class MyLoopQueue<E> implements Queue<E> { /* *...
探索队列和栈 设计循环队列
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。 你的实现应该支持如下操作: MyCircula...
554



被折叠的 条评论
为什么被折叠?



