说明:

1.静态环形队列就是长度已提前确定,可以按顺序循环写入数据(0、1、2...9、0、1、2...);可以按顺序循环读取数据(0、1、2...9、0、1、2...);通过write记录写入个数,写一次加1;通过Read记录读取的个数,读一次加1;

2.队列满:计数其实隐性代表了数据的位置,如果下一个要写入的计数等于读取计数“Read == ((Write + 1”)说明写入已满,(比如:一个圆形跑道上有均匀10个固定的位置可以放东西或者取东西,两个人在圆形跑道上同向追赶,一个前面放东西一个后边取东西,放东西的那个人将要放下一个东西的位置恰好是取东西的那个人正准备取下一个东西的位置,也就是放东西的人已放满一圈了)

3.队列空:计数Read == Write,说明队列空

typedef struct                                     //数据内容根据实际可以随意变更
{int a;int b;int c;char str[100];
}DataDef#define BUFFER_LEN 10                                //环形队列长度
static int Read  = 0;                                //读计数
static int Write = 0;                                //写计数
static DataDef DataBuff[BUFFER_LEN];                 //环形队列static int BufferFull(void)                          //环形队列满
{return (Read == ((Write + 1) % BUFFER_LEN));
}static int BufferEmpty(void)                         //环形队列空
{return (Read == Write);
}static void PutDataToBuffer(DataDef *data)           //一组数据写入队列
{if (!BufferFull()){DataBuff[Write] = *data;Write = (Write + 1) % BUFFER_LEN;}
}static int GetDataFromBuffer(DataDef *data)         //从队列读出一组数据
{if (!BufferEmpty()){*data= DataBuff[Read];Read = (Read + 1) % BUFFER_LEN;return 1;}else{return 0;}
}

静态环形队列(C语言)相关推荐

  1. 环形队列PHP,环形队列 - Go语言中文网 - Golang中文社区

    PHP代码实现 class Listo { public function getlist() { return $this->arr; } private $arr = array(); pr ...

  2. 柔性数组和环形队列之间的故事

    之前的文章,讲解了柔性数组,有很多人留言,提到一些问题.刚好,之前发关于环形队列的文章有些问题,这次刚好拿出来一起说一下,并用柔性数组实现一个环形队列. 柔性数组的上一篇文章 环形队列C语言实现文章 ...

  3. 数据结构环形队列学习(c语言)

    数据结构环形队列学习(c语言) 实现效果 效果模型描述 代码设置队列长度为5,数组实际大小为6(队列长度加1) 黄色方格是队列头,灰色是未被使用内存,蓝色是队列元素 Example1: 当队列添加满元 ...

  4. C语言实现环形队列基本操作

    C语言实现环形队列基本操作(以简单排队问题为例) 通过调用简单函数实现顺序表的相关操作.代码编译环境为VS2019 16.9.4.因为VS的某些原因,scanf写为了scanf_s,作用是一样的,在其 ...

  5. c语言数组实现环形缓冲区,[嵌入式开发模块]环形缓冲区/循环队列 C语言实现

    忙着毕设,很久没有写文章了,终于答辩完了,得了个校优秀毕业设计.毕设做的是个智能接口模块,用一周时间入门了,MC9S12XEP100的开发,又用一周时间入门了uC/OS-II嵌入式操作系统,在做毕设的 ...

  6. C语言数据结构——环形队列

    队列都有两个指针,分别指向队头和队尾,用于出队入队 这里使用顺序表来实现队列,设置头元素下标为front,指向队头,尾元素下标为rear,指向队尾的下一个节点.之所以不选择链表,是因为链表不便于查找队 ...

  7. 【数据结构(C语言描述)】环形队列

    目录 一.基础知识 二.数组实现环队 2.1 初始化 2.2 判断环队是否为空 2.3 判断环队是否为满 2.4 入队 2.5 出队 2.6 取队头元素 2.7 取队尾元素 2.8 销毁环队 三.链表 ...

  8. c语言环形队列用法,C语言,环形队列

    什么是环形队列? 环形缓冲区是一个非常典型的数据结构,这种数据结构符合生产者,消费者模型,可以理解它是一个水坑,生产者不断的往里面灌水,消费者就不断的从里面取出水. 那就可能会有人问,既然需要灌水,又 ...

  9. c语言程序结构环形队列入队,C语言 环形队列

    队列 :队列是一种先进先出的数据结构. 比如说 排队买票, 有一个售票口,最多能排30人,那么最大存储空间就是30人, 每当有1个新人过来排队,就会站在队尾,这就叫入队, 每当有1个人买到票了,就会离 ...

最新文章

  1. python画饼状图的包_Python数据可视化:画饼状图、折线图、圈图
  2. KDD 2019 | 使用神经网络为A*搜索算法赋能:以个性化路径推荐为例
  3. windows 下后台启动 redis
  4. win7 php环境搭建 x64,win7搭建php+Apache环境
  5. linux 中级 教程pdf,Linux初中级学习者指导Linux操作系统技术合集.pdf
  6. “男友家里存款只有20万,我该和他结婚么?”数据告诉你多少家庭才能有20万的存款...
  7. 修改matlab的工作路径(图解版)
  8. 英国央行行长:当前的加密货币不太可能取代法定货币
  9. Ubuntu18.04配置ork(ecto、ecto_image_pipeline、ecto_opencv、ork_reconstruction)
  10. 大数据技术与应用解读及案例分析(PPT)
  11. redis,ruby安装
  12. 利用python生成图片验证码
  13. R语言开放数据分析报告
  14. Anroid通过设置“自启动管理”让应用被杀死也能收到推送消息
  15. 给MacBook装win7遇到的坑
  16. MATLAB怎么新建头文件,头文件()包含了C++的MATLAB引擎函数的定义。
  17. 为什么可积不一定可导_函数可积、原函数存在、变上限函数的关系解读(绝对原创)...
  18. 线程经典实例——吃苹果问题
  19. codeforces 378C MAZE
  20. 电子类专业的毕业后就业方向

热门文章

  1. 计算机网络dcedte,路由接口:DCE和DTE区别
  2. Kaggle经典数据分析项目:泰坦尼克号生存预测!1. 数据概述与可视化2. 数据预处理3. 模型训练4. 模型优化(调参)
  3. 【转载】GIS数据工程师成长路
  4. 【读书笔记】《鬼谷子》——缓解焦虑改善人际妙用书
  5. pdf格式怎么转换成jpg格式?pdf转换jpg的简单方法?
  6. html如何实现自动登录,JS实现两周内自动登录功能
  7. 如何保证投票公平_举办微信投票活动如何确保公平、公正
  8. CMMI流程规范—实现与测试
  9. Windows开机提示:“Windows 未能启动。原因可能是最近更改了硬件或软件。解决此问题的步骤:”
  10. 2022,SCI一区(Advances in Engineering Software),Semantic Cluster Operator for SR and Its Applications