class MyCircularQueue {
int[] array;
// 闭区间
int start;
// 开区间
int end;
int len;
public MyCircularQueue(int k) {
array = new int[k];
start = end = len = 0;
}
public boolean enQueue(int value) {
if (isFull()) {
return false;
}
len++;
array[end % array.length] = value;
end = (end + 1) % array.length;
return true;
}
public boolean deQueue() {
if (isEmpty()) {
return false;
}
len--;
start = (start + 1) % array.length;
return true;
}
public int Front() {
if (isEmpty()) {
return -1;
}
return array[start];
}
public int Rear() {
if (isEmpty()) {
return -1;
}
return array[(end - 1 + array.length) % array.length];
}
public boolean isEmpty() {
return len == 0;
}
public boolean isFull() {
return len == array.length;
}
}
Leetcode_622_设计循环队列_数据结构
最新推荐文章于 2025-09-04 19:50:06 发布
这个博客介绍了如何使用数组实现一个环形队列,包括入队(enQueue)、出队(deQueue)、查看队首(Front)、查看队尾(Rear)以及判断队列是否为空(isEmpty)和满(isFull)等操作。该数据结构在内存利用和效率方面具有优势。

1128

被折叠的 条评论
为什么被折叠?



