当前位置:网站首页>[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];
}
}
边栏推荐
- Custom view puzzle getcolor r.color The color obtained by colorprimary is incorrect
- 关于Gateway中使用@Controller的问题
- [Nodejs] 20. Koa2 onion ring model ----- code demonstration
- 基於Redis的分布式ID生成器
- ES6 grammar summary -- Part 2 (advanced part es6~es11)
- Flink late data processing (3)
- Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
- HCIP Day 12
- Basic operations of databases and tables ----- creating data tables
- Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
猜你喜欢

Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights

Vulnhub target: hacknos_ PLAYER V1.1

Générateur d'identification distribué basé sur redis

(5) Introduction to R language bioinformatics -- ORF and sequence analysis
![Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]](/img/b0/176bf6dea2201afc892d6750c5974b.png)
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]

Working principle of genius telephone watch Z3

Mp3mini playback module Arduino < dfrobotdfplayermini H> function explanation

JS variable types and common type conversions

Problèmes avec MySQL time, fuseau horaire, remplissage automatique 0

Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
随机推荐
MySQL时间、时区、自动填充0的问题
Pytorch four commonly used optimizer tests
Understanding of AMBA, AHB, APB and Axi
基于Redis的分布式ID生成器
JS 函数提升和var变量的声明提升
[899]有序队列
JS变量类型以及常用类型转换
CUDA C programming authoritative guide Grossman Chapter 4 global memory
dosbox第一次使用
[esp32 learning-2] esp32 address mapping
Working principle of genius telephone watch Z3
Use of lists
AMBA、AHB、APB、AXI的理解
RuntimeError: cuDNN error: CUDNN_ STATUS_ NOT_ INITIALIZED
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
What is the maximum length of MySQL varchar field
Pytorch: tensor operation (I) contiguous
ES6语法总结--下篇(进阶篇 ES6~ES11)
Esp8266 connect onenet (old mqtt mode)
The first simple case of GNN: Cora classification