--- 环形队列 (Circular Queue) ---当队尾指针 front == Maxsize - 1 时,再前进一个位置就自动到 0队首指针前进 1:front = (front + 1) % Maxsize队尾指针前进 1:rear = (rear + 1) % Maxsize队空条件:rear == front队满条件:(rear + 1) % Maxsize == front
class CircularQueue(object):def __init__(self, size=100):self.queue = [0 for _ in range(size)]self.size = sizeself.front = 0self.rear = 0def push(self, element):if not self.is_filled():self.rear = (self.rear + 1) % self.sizeself.queue[self.rear] = elementelse:raise IndexError('Queue is filled.')def pop(self):if not self.is_empty():self.front = (self.front + 1) % self.sizereturn self.queue[self.front]else:raise IndexError('Queue is empty.')# 判断队空def is_empty(self):return self.rear == self.front# 判断队满def is_filled(self):return (self.rear + 1) % self.size == self.front

2.3_circular_queue_环形队列相关推荐

  1. ucos-iii串口用信号量及环形队列中断发送,用内建消息队列中断接收

    串口发送部分代码: //通过信号量的方法发送数据 void usart1SendData(CPU_INT08U ch) {OS_ERR err;CPU_INT08U isTheFirstCh;OSSe ...

  2. 第七周实践项目2.3 顺序环形队列

    下图是数据存储结构设计及各种操作实现的要点: /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2.3- *作 者 ...

  3. 单片机实现环形队列_单片机模块化程序: 难道有环形队列串口发送数据就万事大吉了吗...

    1.问个问题,下面程序有没有BUG数组 2.环形队列虽然解决了一开始的中断发送数据覆盖问题,可是呢却引入了新的问题函数 3.而后看看中断发送测试 4.想没想明白是什么问题spa 5.发送数据1 和发送 ...

  4. 每日一博 - 使用环形队列实现高效的延时消息

    文章目录 Pre 方案A 方案B 总结 Pre 来个场景: 24小时后将未进行某个Action的业务,执行另外一个动作. 比如 24小时未付款的订单,取消. 你可能会说 方案A 来个定时呗 ,每隔半小 ...

  5. (数据结构与算法)数组模拟队列和环形队列

    文章目录 数组模拟队列 思路 代码实现 问题分析并优化 数组模拟环形队列 思路 代码实现 数组模拟队列 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取 ...

  6. 队列与环形队列使用数组模拟

    队列 该文是观看尚硅谷韩老师视频学习自己总结学习得,有的是来源于网络收集 队列引入 进的一端称为队尾(rear),出的一端称为队头(front).队列可以用顺序存储,也可以用链式存储. 队列介绍 队列 ...

  7. 不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列

    文章目录 队列简介 数组模拟队列(无法复用) 数组模拟环形队列(可复用) 队列简介 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即先存入队列的数据,先取出,后存入的后取出. 示 ...

  8. 数据结构 - 队列(非环形队列,以及优化成环形队列)

    1)队列的定义与实现形式-方式 2)队列实现思路(非环形,下面进行优化) 3)代码实现(注意并不是环形) package DataStructures.queue;import java.util.S ...

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

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

最新文章

  1. VRRP+MSTP 实现流量分流与核心层备份
  2. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
  3. 对图片对比度和亮度的理解
  4. php 字符型转变为数值,php怎么把字符串转换为数值?
  5. 使用Spring Cloud Gateway保护反应式微服务
  6. linux 删除带a的文件格式,linux基础命令练习题
  7. VS2010可反复安装MSDN的方法
  8. 华为发布The New P30 Pro新机:全新配色+EMUI10系统
  9. OpenCV能调用的摄像头类型
  10. PHP问题 —— failed to open stream: HTTP request faile
  11. [活动]问卷调查:打造更好用的Visual Studio 2008
  12. CF1151FSonya and Informatics
  13. matlab习题二,matlab习题二答案.doc
  14. mysql数据库升幂_斯特林数
  15. JS 数据容量转换/换算
  16. zyf整合ssm环境
  17. 如何申请CSDN博客专栏
  18. 同步或者重构Activiti Identify用户数据的多种方案比较
  19. 【PAT】PAT那些破事
  20. vue中事件监听watch

热门文章

  1. Mybatis动态sql中的foreach标签的使用
  2. MySQL中cast()与convert()的用法
  3. mysql滴的一声就关了_关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法(详细办法)...
  4. 所大学生都要学计算机基础吗,大学生计算机基础学期总结.docx
  5. python和lisp学哪个好_五位专家跟你讲讲为啥Python更适合做AI/机器学习
  6. MySQL数据库表分区功能详解
  7. 远程桌面服务器无法复制粘贴了怎么解决
  8. spring cloud超时时间设置
  9. Rabbitmq消息过期时间设置
  10. WCF学习笔记(一):WCF Service Application和WCF Service Library的区别