设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。

循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。

你的实现应该支持如下操作:

  • MyCircularQueue(k): 构造器,设置队列长度为 k 。
  • Front: 从队首获取元素。如果队列为空,返回 -1 。
  • Rear: 获取队尾元素。如果队列为空,返回 -1 。
  • enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。
  • deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。
  • isEmpty(): 检查循环队列是否为空。
  • isFull(): 检查循环队列是否已满。

示例:

MyCircularQueue circularQueue = new MycircularQueue(3); // 设置长度为 3circularQueue.enQueue(1);  // 返回 truecircularQueue.enQueue(2);  // 返回 truecircularQueue.enQueue(3);  // 返回 truecircularQueue.enQueue(4);  // 返回 false,队列已满circularQueue.Rear();  // 返回 3circularQueue.isFull();  // 返回 truecircularQueue.deQueue();  // 返回 truecircularQueue.enQueue(4);  // 返回 truecircularQueue.Rear();  // 返回 4

提示:

  • 所有的值都在 0 至 1000 的范围内;
  • 操作数将在 1 至 1000 的范围内;
  • 请不要使用内置的队列库。

622. 设计循环队列相关推荐

  1. c++数据结构中 顺序队列的队首队尾_yiduobo的每日leetcode 622.设计循环队列

    祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧. 622.设计循环队列https://leetcode-cn.com/problems/design-circu ...

  2. 622. 设计循环队列(C实现)

    题目 题目链接:622. 设计循环队列 思路 设计循环队列有两种实现方式 第一种是使用数组实现: 第二种是使用单链表实现: 而设计循环队列不管是使用数组实现还是使用单链表实现,都需要给数组预留出一个空 ...

  3. leetcode 622——设计循环队列

    leetcode 622--设计循环队列(C语言提交) 题目链接:leetcode 622--设计循环队列 题目描述: 设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先 ...

  4. Java实现 LeetCode 622 设计循环队列(暴力大法)

    622. 设计循环队列 设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为"环形缓冲器" ...

  5. Leetcode 622. 设计循环队列

    Leetcode 622. 设计循环队列学习 分析 代码 参考链接 分析 循环队列,自己做题时没考虑怎么实现,可以通过索引下标除以数组的长度实现循环.循环队列的队首元素和队尾元素是动态变化的,删除一个 ...

  6. 【Java】 LeetCode 622. 设计循环队列 (有关实现循环队列的讲解)

    题目: 设计你的循环队列实现. 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环.它也被称为"环形缓冲器". 循环队列的一 ...

  7. 设计循环队列(LeetCode:622.设计循环队列)

    目录 写在前面的话: 一,题目分析 二,各接口实现 2.1构造循环队列 2.1.1两种不同形式的队列 2.1.2顺序表实现循环队列 2.2向队列中插入元素 2.3删除队列中元素 2.4获取队尾和队首元 ...

  8. Leetcode 622. 设计循环队列 解题思路及C++实现

    解题思路: 使用整数数组来作为队列的数据结构,设置两个位置指针:front 和 end,front指向队首元素,end指向队尾的下一个元素(即为空位置).当 front 和 end 相等时,有两种情况 ...

  9. leetcode 622. Design Circular Queue | 622. 设计循环队列(Ring Buffer)

    题目 https://leetcode.com/problems/design-circular-queue/ 题解 Ring Buffer 的实现,rear 指向新插入的位置,front 指向最旧的 ...

最新文章

  1. 【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工
  2. atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
  3. 微软“SharePoint天天向上”第一期线上活动
  4. 经典C语言程序100例之一零零
  5. EnumWindows 使用
  6. sqlserver 登录失败——孤立用户
  7. 本地 Git 文件夹显示绿色标识
  8. 消消乐游戏算法实现(三消乐)
  9. 计算机文件夹移动的实验原理,怎么移动电脑文件和文件夹
  10. 在互联网时代一切归零
  11. 重庆大学计算机信息管理基础2013,重庆大学计算机信息管理基础课程考试试卷B.doc...
  12. Vertica—操作汇总
  13. MultiDex精补篇,进一步知道MultiDex的配置
  14. 特殊符号: 和 | | 和 ?? 和 ?作用详解
  15. 盘点 深度学习妖怪 之 激活函数妖
  16. base64转图片+图片转base64
  17. ubuntu下编写C语言程序
  18. 够大牌才够质感:京东11.11数读产品品质化新趋
  19. SEI、Envestnet、AssetMark2019年度观察 ——美国TAMP行业代表性公司对比分析
  20. jmeter使用技巧——线程组

热门文章

  1. 利用零碎时间来提升自己的50条建议(新年必读!)
  2. IT圈的“年龄歧视”,android模拟器中文输入法
  3. AtCoder Regular Contest 113训练赛(暴力,快速幂,贪心)
  4. 特征选择方法之互信息
  5. 《云GIS技术与实践》第二章 云GIS核心技术 笔记
  6. 使用Django框架遇到RuntimeError: populate() isn't reentrant错误
  7. tree view android,AndroidTreeView
  8. 计算机中级职称.临沂,临沂50周岁以上人员评职称可免考计算机
  9. HTML JS实现富文本编辑器
  10. 畅想 Serverless 新托管时代,2020 年迎来哪些新机会?