当前位置:网站首页>[leetcode622] design circular queue
[leetcode622] design circular queue
2022-07-06 12:25:00 【Vigorous waist Nuo dance】
Although but , Basic things are also written
subject
Design your loop queue implementation . Circular queue is a linear data structure , Its operation performance is based on FIFO( fifo ) Principle and the end of the team is connected behind the head of the team to form a loop . It's also called “ Ring buffer ”.
One of the benefits of circular queues is that we can take advantage of the previously used space in this queue . In a normal queue , Once a queue is full , We can't insert the next element , There's room even in front of the queue . But with circular queues , We can use this space to store new values .
Your implementation should support the following operations :
MyCircularQueue(k): Constructors , Set queue length to k .
Front: Get elements from team leader . If the queue is empty , return -1 .
Rear: Get team end element . If the queue is empty , return -1 .
enQueue(value): Insert an element into the loop queue . True if successfully inserted .
deQueue(): Remove an element from the loop queue . True if deleted successfully .
isEmpty(): Check if the loop queue is empty .
isFull(): Check if the loop queue is full .
source : Power button (LeetCode)
link :https://leetcode.cn/problems/design-circular-queue
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
source : Power button (LeetCode)
link :https://leetcode.cn/problems/design-circular-queue
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
class MyCircularQueue {
int[] queue;
/* They are the head pointer and the tail pointer */
int front,rear;
int size;
public MyCircularQueue(int k) {
/* Create an array . Be able to distinguish between empty queues and full queues . Need to keep one more */
/* When the head pointer and the tail pointer overlap, it indicates an empty queue */
/* The tail pointer points to the next position of the last node in the queue */
/* When the next position of the tail pointer is the head pointer , The queue is full */
/* So it will waste a place */
queue=new int[k+1];
front=rear=0;
/* The actual length of the queue , Used to calculate the position of the head pointer and the tail pointer after moving */
size=k+1;
}
public boolean isEmpty() {
return rear==front;
}
public boolean isFull() {
/* When the line is full , Because it's a circular queue , The tail pointer may be in front of or behind the head pointer , Therefore, it is necessary to take the remainder */
/* Remainder , The consideration is rear==size-1 The situation of */
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;
/* Also required in brackets +size, The consideration is rear==0 The situation of */
else return queue[(rear-1+size)%size];
}
}
边栏推荐
- Understanding of AMBA, AHB, APB and Axi
- RuntimeError: cuDNN error: CUDNN_ STATUS_ NOT_ INITIALIZED
- What is the maximum length of MySQL varchar field
- Arm pc=pc+8 is the most understandable explanation
- Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation
- Générateur d'identification distribué basé sur redis
- Pytoch implements simple linear regression demo
- level16
- Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
- MySQL占用内存过大解决方案
猜你喜欢
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
ORA-02030: can only select from fixed tables/views
基于Redis的分布式ID生成器
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
Basic operations of databases and tables ----- modifying data tables
[esp32 learning-1] construction of Arduino esp32 development environment
Types de variables JS et transformations de type communes
Redis based distributed ID generator
Classification, understanding and application of common methods of JS array
[Red Treasure Book Notes simplified version] Chapter 12 BOM
随机推荐
【ESP32学习-1】Arduino ESP32开发环境搭建
Cannot change version of project facet Dynamic Web Module to 2.3.
[Red Treasure Book Notes simplified version] Chapter 12 BOM
Single chip Bluetooth wireless burning
MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
JS数组常用方法的分类、理解和运用
CUDA C programming authoritative guide Grossman Chapter 4 global memory
Priority inversion and deadlock
如何给Arduino项目添加音乐播放功能
The first simple case of GNN: Cora classification
[leetcode19]删除链表中倒数第n个结点
Pytoch temperature prediction
The dolphin scheduler remotely executes shell scripts through the expect command
Pytorch four commonly used optimizer tests
Basic operations of databases and tables ----- classification of data
Arduino gets the length of the array
Learning notes of JS variable scope and function
.elf .map .list .hex文件
Générateur d'identification distribué basé sur redis
基於Redis的分布式ID生成器