#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 10
/*
元素个数:(rear - front + maxsize)&maxsize
队列满:(rear + 1)%maxsize == front
下一个入队元素位置:(rear + 1)%maxsize
下一个出队元素位置:(front + 1)%maxsize
队列为空:front == rear
-----------------只有rear指针的情况下:----------
对头为: (Rear + Maxsize - Length) % Maxsize
队列满: (Rear + 1) % Maxsize == (Rear + Maxsize - Length) % Maxsize
队列空: (Rear + Maxsize - Length) % Maxsize == rear
*/
typedef char ElemType;
typedef struct Queue{ElemType data[MAXSIZE];int length;int rear;
}Queue;
bool InitQueue(Queue &Q){Q.data = (ElemType*)malloc(sizeof(ElemType) * MAXSIZE);if(!Q.data) return false;length = 0;rear = 0;return true;
}
bool Enqueue(Queue &Q, ElemType e){if((Q.rear + 1)%MAXSIZE == (Q.rear + MAXSIZE - Q.length)%MAXSIZE) return false;Q.data[Q.rear] = e;Q.rear = (Q.rear + 1) % MAXSIZE;Q.length++;return true;
}
bool DeQueue(Queue &Q, ElemType &e){if((Q.rear + MAXSIZE - Q.length)%MAXSIZE == Q.rear){return false;}e = Q.data[(Q.rear + MAXSIZE - Q.length)%MAXSIZE];Q.length--;return true;
}

只有rear指针的环形循环队列相关推荐

  1. 循环队列的介绍与实现

    文章目录 1 循环队列定义 2 循环队列基本操作 3 循环队列代码实现 4 补充 1 循环队列定义 循环队列:即顺序存储的队列,是为了避免"假溢出"而利用%运算符将队列首尾相接连成 ...

  2. 计算机二级循环队列知识点,考点!计算机二级考试公共基础知识冲刺复习笔记:栈、队列和循环队列...

    小编所收集到的相关计算机二级考试公共基础知识冲刺复习笔记:栈.队列和循环队列的资料 大家要认真阅读哦! 1.栈(Stack)又称堆栈. (1)栈是一种运算受限的线性表,其限制是仅允许在表的一端进行插入 ...

  3. 数据结构与算法之循环队列的操作

    数据结构与算法之循环队列的操作 /* 循环队列的入队和出队算法设计 初始化循环队列 .打印队列.插入元素到循环队列.获取循环队列的首元素,元素不出队.出队.获取循环队列元素个数.判断循环队列的空和满. ...

  4. 杨辉三角循环队列实现(数据结构c语言版)

    [问题描述]杨辉三角形是由[(a+b)]n二项式展开的各项系数形成的,当n=0,系数为1,生成第一行的元素:当a=1,a+b的各项系数组成第二行的元素:当n=2,a2+2ab+b^2的各项系数组成第三 ...

  5. 循环队列(Circular Queue)

    循环队列作用 为充分利用向量空间,克服"假溢出"现象的方法. 循环队列的原理 在环状顺序表中,最后一个位置(a[6])和第一个位置(a[0])紧挨着,这样做的好处是: 随着元素做入 ...

  6. java先进先出 循环队列_java队列--先进先出(循环队列、链队列)

    队列:只允许在一端进行插入操作(队尾),在另一端进行删除操作(队头). 队列的特征就是: 先进先出. 队列的思想及实现也同样非常简单.在生活中的各种常常都需要排队进行,键盘中缓存区.操作系统中的作业调 ...

  7. 【数据结构】队列(链队列、循环队列)的存储结构及基本运算(C语言)

    目录 1. 队列基本概念 2. 链队列 2.1 代码+注释 2.2 运行结果 3. 循环队列 3.1 代码+注释 3.2 运行结果 1. 队列基本概念 队列(Queue)是一种限定性线性表,它只允许在 ...

  8. 循环队列 (顺序存储)

    数组 和 链表是最基本的数据结构,栈.队列.树.图等复杂数据结构都是基于数组或链表方式存储 队列(Queue)特征: 循环队列的顺序存储是基于数组来实现的 队列是一种操作受限的线性表.队列只能在表的一 ...

  9. 如何设计一个循环队列

    文章目录 前言 一.思路 二.代码实现 1.MyCircularQueue(k) 构造方法 2.Front 从队首获取元素 3.Rear 获取队尾元素 4.enQueue(value) 向循环队列插入 ...

  10. 数据结构c语言循环队列代码,数据结构C语言实现----循环队列

    代码如下: #include #include typedef char ElemType; #define MAXQUEUE 100 typedef struct { ElemType *base; ...

最新文章

  1. python批量读取tiff文件_Python图像分析:从共焦显微镜读取多维TIFF文件
  2. C语言中临时变量写在哪里,C语言中不允许创建临时变量,交换两个数的内容
  3. 异构计算:软硬件结合全栈助力AI大爆发
  4. Windows 11的19个新功能
  5. 【转】完整java开发中JDBC连接数据库代码和步骤
  6. NBA理性分析:30年最强夺冠阵容
  7. python做逻辑回归r2_利用python实现逻辑回归
  8. 机器学习笔记17-LDA算法
  9. origin数据平滑_origin怎样平滑曲线 看完你就会了
  10. 用C语言打印1到100的罗马数字
  11. vue 的ui组件库
  12. 估算CarSim中车辆轮胎的纵向刚度与侧向刚度
  13. Zabbix自动发现和自动注册
  14. 怎样删除微信朋友圈的内容?超简单的方法免费分享!
  15. 为用户提供确定性——互联网平台建设
  16. C++代码破解LOL人物基址特征,基址在源码里面自己找!
  17. vue3+ts+element-plus动态图标生成方式
  18. 简易的网上购物商城首页设计流程
  19. python编写交互界面查分,Python实现CET查分的方法 -电脑资料
  20. 阿里云视频点播微服务

热门文章

  1. LR11补丁下载地址
  2. 打开天窗:应用大脑科学提升两性之间的职场关系
  3. QGIS空间数据分析——空间数据基本处理与计算
  4. Java 编程技术大全(上)实战练习 cp1-cp3
  5. STM32工具使用---STM32CubeProgrammer更新固件
  6. JavaScript 每日一题---LeetCode 122. 买卖股票的最佳时机 II
  7. 先有鸡还是先有蛋的争论
  8. Unity应该怎样学习
  9. 多个excel工作簿合并_Microsoft Excel如何快速合并多个工作簿至一个工作簿中?
  10. Vijos-p1154买蛋糕(dfs + 剪枝)