JAVA顺序循环队列
时间: 2024-10-10 20:08:06 浏览: 21
java队列实现方法(顺序队列,链式队列,循环队列)
在Java中,顺序循环队列是一种线性数据结构,它通过数组实现,利用数组的索引来存储元素。其特点是队头和队尾都有特殊的标记,当队列满时,新的元素会从队首开始覆盖旧的队尾元素,形成一种循环的效果,避免了普通数组在满时需要额外的空间来扩容的问题。
Java中,我们可以自定义一个`CircularQueue`类,包含两个变量:`front`表示队头位置,`rear`表示队尾位置。添加元素(enqueue)时,如果队尾已达到数组长度减一的位置,则将队头指针更新为0;删除元素(dequeue)时,如果队头等于队尾,说明队列为空。以下是基本的循环队列实现:
```java
class CircularQueue {
private int[] queue;
private int front, rear;
// 构造函数、初始化等...
public boolean isEmpty() {
return front == rear;
}
public void enqueue(int item) {
if (isFull()) {
front = (front + 1) % queue.length; // 循环处理
} else {
rear = (rear + 1) % queue.length;
queue[rear] = item;
}
}
public int dequeue() {
if (isEmpty()) {
throw new IllegalStateException("Queue is empty");
}
int removedItem = queue[front];
front = (front + 1) % queue.length; // 队头后移
return removedItem;
}
// 其他辅助方法...
private boolean isFull() {
return rear == (front + queue.length - 1) % queue.length;
}
}
```
阅读全文