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

上传人:Lun****ng 文档编号:143869937 上传时间:2020-09-02 格式:DOCX 页数:3 大小:11.37KB
返回 下载 相关 举报
Java实现 LeetCode 622 设计循环队列(暴力大法).docx_第1页
第1页 / 共3页
Java实现 LeetCode 622 设计循环队列(暴力大法).docx_第2页
第2页 / 共3页
Java实现 LeetCode 622 设计循环队列(暴力大法).docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java实现 LeetCode 622 设计循环队列(暴力大法).docx》由会员分享,可在线阅读,更多相关《Java实现 LeetCode 622 设计循环队列(暴力大法).docx(3页珍藏版)》请在金锄头文库上搜索。

1、Java实现 LeetCode 622 设计循环队列(暴力大法)622. 设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -1 。Rear:

2、 获取队尾元素。如果队列为空,返回 -1 。enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。示例:MyCircularQueue circularQueue = new MycircularQueue(3); / 设置长度为 3circularQueue.enQueue(1); / 返回 truecircularQueue.enQueue(2); / 返回 truecircularQueue.enQueue(3

3、); / 返回 truecircularQueue.enQueue(4); / 返回 false,队列已满circularQueue.Rear(); / 返回 3circularQueue.isFull(); / 返回 truecircularQueue.deQueue(); / 返回 truecircularQueue.enQueue(4); / 返回 truecircularQueue.Rear(); / 返回 4 提示:所有的值都在 0 至 1000 的范围内;操作数将在 1 至 1000 的范围内;请不要使用内置的队列库。class MyCircularQueue private In

4、teger arr; private int head; private int tail; /* Initialize your data structure here. Set the size of the queue to be k. */ public MyCircularQueue(int k) arr=new Integerk; head=0; tail=0; /* Insert an element into the circular queue. Return true if the operation is successful. */ public boolean enQ

5、ueue(int value) if(isFull() return false; else arrtail=value; tail=(tail+1)%(arr.length); return true; /* Delete an element from the circular queue. Return true if the operation is successful. */ public boolean deQueue() if(isEmpty() return false; else arrhead=null; head=(head+1)%(arr.length); retur

6、n true; /* Get the front item from the queue. */ public int Front() if(isEmpty() return -1; else return arrhead; /* Get the last item from the queue. */ public int Rear() if(isEmpty() return -1; else if(tail!=0)return arrtail-1; else return arrarr.length-1; /* Checks whether the circular queue is em

7、pty or not. */ public boolean isEmpty() if(head=tail&arrhead=null) return true; else return false; /* Checks whether the circular queue is full or not. */ public boolean isFull() if(head=tail&arrhead!=null) return true; else return false; /* * Your MyCircularQueue object will be instantiated and called as such: * MyCircularQueue obj = new MyCircularQueue(k); * boolean param_1 = obj.enQueue(value); * boolean param_2 = obj.deQueue(); * int param_3 = obj.Front(); * int param_4 = obj.Rear(); * boolean param_5 = obj.isEmpty(); * boolean param_6 = obj.isFull(); */

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号