当前位置:网站首页>[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];
}
}
边栏推荐
- dosbox第一次使用
- 【ESP32学习-2】esp32地址映射
- MySQL takes up too much memory solution
- MP3mini播放模块arduino<DFRobotDFPlayerMini.h>函数详解
- 1081 rational sum (20 points) points add up to total points
- JUC forkjoin and completable future
- Arduino get random number
- .elf .map .list .hex文件
- [offer9]用两个栈实现队列
- Several declarations about pointers [C language]
猜你喜欢
Page performance optimization of video scene
JS變量類型以及常用類型轉換
level16
MySQL时间、时区、自动填充0的问题
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
(1) Introduction Guide to R language - the first step of data analysis
Conditional probability
[golang] leetcode intermediate - fill in the next right node pointer of each node & the k-smallest element in the binary search tree
MySQL時間、時區、自動填充0的問題
[Red Treasure Book Notes simplified version] Chapter 12 BOM
随机推荐
. elf . map . list . Hex file
Servlet
level16
ARM PC=PC+8 最便于理解的阐述
Cannot change version of project facet Dynamic Web Module to 2.3.
Pytoch implements simple linear regression demo
Common properties of location
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
Who says that PT online schema change does not lock the table, or deadlock
PT OSC deadlock analysis
(3) Introduction to bioinformatics of R language - function, data Frame, simple DNA reading and analysis
Detailed explanation of truncate usage
[leetcode19]删除链表中倒数第n个结点
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
(1) Introduction Guide to R language - the first step of data analysis
RT thread API reference manual
Gateway fails to route according to the service name, and reports an error service unavailable, status=503
By v$rman_ backup_ job_ Oracle "bug" caused by details
Cannot change version of project facet Dynamic Web Module to 2.3.
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights