温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

LeetCode如何实现循环队列

发布时间:2021-12-15 11:18:03 来源:亿速云 阅读:170 作者:小新 栏目:大数据

小编给大家分享一下LeetCode如何实现循环队列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

队列是典型的先进先出(FIFO)结构,插入(insert)也叫做入队(enqueue),新元素从队尾插入。删除(delete)也叫做出队(dequeue),从队首移除

LeetCode如何实现循环队列

LeetCode如何实现循环队列  
 

队列

队列可以利用Python中的数组实现,包含如下函数:

  • enqueue:入队

  • dequeue:出队

  • isEmpty:判断是否为空

  • size:队列长度(元素个数)

LeetCode如何实现循环队列

LeetCode如何实现循环队列  
 

循环队列

循环队列也是一种线性结构,同样基于FIFO原则,只不过队尾被连接在了队首之后形成了一个循环,也被称之为“环形缓冲器”

循环队列的一个优点在于:可以利用这个队列之前用过的空间

循环队列是要设置总长度容量的

循环队列包含的函数:

  • MyCircularQueue(k):构造一个长度为k的循环队列

  • Front:获取队首元素

  • Rear:获取队尾元素

  • enqueue(value):向循环队列插入一个元素,若成功则返回True

  • dequeue():从循环队列中删除一个元素,成功则返回True

  • isFull():检查循环队列是否为已满

  • isEmpty():判断循环队列是否为空

示例:

LeetCode如何实现循环队列

 

实现思路

LeetCode如何实现循环队列

首先循环队列是个“环”,利用python的数组模拟,通过操作数组的索引构建一个虚拟的环。对于循环队列而言,总长度是固定的(即数组的容量是固定的),任何位置都可以是队列的队首利用队首索引可以利用如下公式推导出队尾索引

tail_index = (head_index + count -1) % capacity

公式中的参数:

  • tail_index:队尾索引

  • head_index:队首索引

  • count:队列长度(即实际元素个数)

  • capacity:数组容量

LeetCode如何实现循环队列

 
 

循环队列小结

1. 队尾索引由队头索引公式得到

tail_index = (head_index + count -1) % capacity
2. 设置数组容量  capacity
3. 队列长度  count  (实际元素个数)
4.  “循环”实现的关键    % capacity
5. “插入”是队尾移动,“删除”是队头移动


以上是“LeetCode如何实现循环队列”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI