LeetCode如何实现循环队列
小编给大家分享一下LeetCode如何实现循环队列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站设计、北关网络推广、微信小程序定制开发、北关网络营销、北关企业策划、北关品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供北关建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
队列是典型的先进先出(FIFO)结构,插入(insert)也叫做入队(enqueue),新元素从队尾插入。删除(delete)也叫做出队(dequeue),从队首移除
队列
队列可以利用Python中的数组实现,包含如下函数:
enqueue:入队
dequeue:出队
isEmpty:判断是否为空
size:队列长度(元素个数)
循环队列
循环队列也是一种线性结构,同样基于FIFO原则,只不过队尾被连接在了队首之后形成了一个循环,也被称之为“环形缓冲器”
循环队列的一个优点在于:可以利用这个队列之前用过的空间
循环队列是要设置总长度容量的
循环队列包含的函数:
MyCircularQueue(k):构造一个长度为k的循环队列
Front:获取队首元素
Rear:获取队尾元素
enqueue(value):向循环队列插入一个元素,若成功则返回True
dequeue():从循环队列中删除一个元素,成功则返回True
isFull():检查循环队列是否为已满
isEmpty():判断循环队列是否为空
示例:
实现思路
首先循环队列是个“环”,利用python的数组模拟,通过操作数组的索引构建一个虚拟的环。对于循环队列而言,总长度是固定的(即数组的容量是固定的),任何位置都可以是队列的队首,利用队首索引可以利用如下公式推导出队尾索引:
tail_index = (head_index + count -1) % capacity
公式中的参数:
tail_index:队尾索引
head_index:队首索引
count:队列长度(即实际元素个数)
capacity:数组容量
循环队列小结
1. 队尾索引由队头索引公式得到
tail_index = (head_index + count -1) % capacity
以上是“LeetCode如何实现循环队列”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网站题目:LeetCode如何实现循环队列
文章链接:http://ybzwz.com/article/jghgih.html