使用Java语言实现环形队列并入队都是字母
时间: 2024-10-21 22:17:31 浏览: 11
Java定义队列结构,并实现入队、出队操作完整示例
在Java中,可以使用数组来实现环形队列(Circular Queue),因为数组提供了方便的索引操作。这里是一个基本的实现步骤:
```java
public class CircularQueue {
private int[] queue; // 数组存储队列
private int front, rear; // 前面元素和后面元素的索引
public CircularQueue(int size) {
queue = new int[size];
front = rear = -1;
}
// 入队(Enqueue)
public boolean enqueue(char item) {
if (isFull()) {
return false; // 队列已满,无法添加更多元素
}
if (front == -1) { // 空队列,初始化 front 和 rear
front = rear = 0;
} else {
rear = (rear + 1) % queue.length; // 使用环形队列的概念
}
queue[rear] = item;
return true;
}
// 出队(Dequeue)
public char dequeue() {
if (isEmpty()) {
throw new IllegalStateException("队列为空");
}
char removedItem = queue[front];
if (front == rear) { // 队列只有一项,更新 front 和 rear
front = rear = -1;
} else {
front = (front + 1) % queue.length;
}
return removedItem;
}
// 判断队列是否为空
private boolean isEmpty() {
return front == -1;
}
// 判断队列是否已满
private boolean isFull() {
return (front == (rear + 1)) % queue.length == 0;
}
}
```
在这个实现中,我们维护了两个指针front和rear,分别指向队列的开始和结束位置。当队列满时,入队操作会使rear加一并取模,使其保持在有效范围内;出队操作则移动front,并处理特殊情况(只有一个元素)。
阅读全文