当前位置:网站首页>LeetCode - 641 设计循环双端队列(设计)*
LeetCode - 641 设计循环双端队列(设计)*
2022-07-25 15:32:00 【三岁就很萌@D】



class MyCircularDeque {
//底层数组结构
private int[] deque;
//头指针
private int head;
//尾指针
private int tail;
//队列中实际中存放的数的个数
private int size;
//队列容量
private int capacity;
public MyCircularDeque(int k) {
deque = new int[k];
head = 0;
tail = 0;
size = 0;
capacity = k;
}
public boolean insertFront(int value) {
//如果队列已经满了
if(isFull() == true)
return false;
else{
//在头指针指向位置插入value
deque[head] = value;
//头指针向前移动
head = (head -1 + this.capacity) % this.capacity;
//队列值个数加一
size += 1;
return true;
}
}
public boolean insertLast(int value) {
//如果队列已经满了
if(isFull() == true)
return false;
else{
//尾指针向后移动
tail = (tail + 1 + this.capacity) % this.capacity;
//在尾指针指向位置插入value
deque[tail] = value;
//队列值个数加一
size += 1;
return true;
}
}
public boolean deleteFront() {
//如果队列为空
if(isEmpty())
return false;
else{
head = (head + 1) % this.capacity;
size -= 1;
return true;
}
}
public boolean deleteLast() {
//如果队列为空
if(isEmpty())
return false;
else{
tail = (tail -1 + this.capacity) % this.capacity;
size -= 1;
return true;
}
}
public int getFront() {
if(isEmpty())
return -1;
else{
int front = (head + 1) % this.capacity;
return deque[front];
}
}
public int getRear() {
if(isEmpty())
return -1;
else{
return deque[tail];
}
}
public boolean isEmpty() {
return this.size == 0;
}
public boolean isFull() {
return this.capacity == this.size;
}
}
/** * Your MyCircularDeque object will be instantiated and called as such: * MyCircularDeque obj = new MyCircularDeque(k); * boolean param_1 = obj.insertFront(value); * boolean param_2 = obj.insertLast(value); * boolean param_3 = obj.deleteFront(); * boolean param_4 = obj.deleteLast(); * int param_5 = obj.getFront(); * int param_6 = obj.getRear(); * boolean param_7 = obj.isEmpty(); * boolean param_8 = obj.isFull(); */
边栏推荐
猜你喜欢
随机推荐
2021hncpc-e-difference, thinking
CF888G-巧妙字典树+暴力分治(异或最小生成树)
2021江苏省赛A. Array-线段树,维护值域,欧拉降幂
GAMES101复习:三维变换
Cf365-e - Mishka and divisors, number theory +dp
PAT甲级1153 Decode Registration Card of PAT (25 分)
如何实现页面包含
C#精挑整理知识要点10 泛型(建议收藏)
JS URLEncode function
Endnote 无法编辑range 解决
2021上海市赛-H-二分答案
matlab--CVX优化工具包安装
Word 样式模板复制到另一文档
CF566A-贪心+字典树
ML - natural language processing - Basics
数据系统分区设计 - 分区与二级索引
2019 Zhejiang race c-wrong arrangement, greedy
Understanding the difference between wait() and sleep()
2019浙江省赛C-错排问题,贪心
C # fine sorting knowledge points 9 Set 2 (recommended Collection)









