当前位置:网站首页>[leetcode622]设计循环队列
[leetcode622]设计循环队列
2022-07-06 09:17:00 【劲腰傩舞】
虽然但是,基础的东西也写写
题目
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。
循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。
你的实现应该支持如下操作:
MyCircularQueue(k): 构造器,设置队列长度为 k 。
Front: 从队首获取元素。如果队列为空,返回 -1 。
Rear: 获取队尾元素。如果队列为空,返回 -1 。
enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。
deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。
isEmpty(): 检查循环队列是否为空。
isFull(): 检查循环队列是否已满。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/design-circular-queue
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/design-circular-queue
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class MyCircularQueue {
int[] queue;
/*分别是头指针和尾指针*/
int front,rear;
int size;
public MyCircularQueue(int k) {
/*创建一个数组。要能够区分空队列和满队列的情况。需要多保留一位*/
/*头指针和尾指针重叠的时候表示空队列*/
/*尾指针指向队列最后一个节点的下一个位置*/
/*当尾指针的下一个位置是头指针的时候,队列满*/
/*所以会浪费一个位置*/
queue=new int[k+1];
front=rear=0;
/*队列的实际长度,用来计算头指针和尾指针移动后的位置*/
size=k+1;
}
public boolean isEmpty() {
return rear==front;
}
public boolean isFull() {
/*队列满的时候,由于是循环队列,尾指针可能在头指针的前面或者后边,所以需要取余操作*/
/*取余,考虑的是rear==size-1的情况*/
return (rear+1)%size==front;
}
public boolean enQueue(int value) {
if(isFull())
return false;
else{
queue[rear]=value;
rear=(rear+1)%size;
return true;
}
}
public boolean deQueue() {
if(isEmpty())
return false;
else {
front=(front+1)%size;
return true;
}
}
public int Front() {
if(isEmpty())
return -1;
else return queue[front];
}
public int Rear() {
if(isEmpty())
return -1;
/*括号中还需要+size,考虑的是rear==0的情况*/
else return queue[(rear-1+size)%size];
}
}
边栏推荐
- Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
- Reno7 60W super flash charging architecture
- ARM PC=PC+8 最便于理解的阐述
- ES6语法总结--上篇(基础篇)
- E-commerce data analysis -- salary prediction (linear regression)
- AMBA、AHB、APB、AXI的理解
- inline详细讲解【C语言】
- MySQL replacement field part content
- Basic knowledge of lithium battery
- Feature of sklearn_ extraction. text. CountVectorizer / TfidVectorizer
猜你喜欢
The dolphin scheduler remotely executes shell scripts through the expect command
高通&MTK&麒麟 手机平台USB3.0方案对比
JS function promotion and declaration promotion of VaR variable
小天才电话手表 Z3工作原理
ESP学习问题记录
RT thread API reference manual
Detailed explanation of 5g working principle (explanation & illustration)
(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
JS variable types and common type conversions
Classification, understanding and application of common methods of JS array
随机推荐
js 变量作用域和函数的学习笔记
Learning notes of JS variable scope and function
Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
ES6 grammar summary -- Part I (basic)
【ESP32学习-2】esp32地址映射
Use of lists
Understanding of AMBA, AHB, APB and Axi
Common properties of location
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
Kconfig Kbuild
Bubble sort [C language]
C language callback function [C language]
Several declarations about pointers [C language]
Walk into WPF's drawing Bing Dwen Dwen
Kconfig Kbuild
1081 rational sum (20 points) points add up to total points
C language, log print file name, function name, line number, date and time
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
Characteristics, task status and startup of UCOS III