java数组实现队列
时间: 2024-09-29 09:10:18 浏览: 41
基于Java数组实现循环队列的两种方法小结
在Java中,可以使用数组来实现队列(Queue),一种先进先出(FIFO,First In First Out)的数据结构。这里我们可以通过创建两个指针,一个用于添加元素(rear - 后端),另一个用于删除元素(front - 前端)来简单地模拟队列的行为:
1. 首先,创建一个固定大小的数组`QueueArray`作为存储空间。
2. 初始化`front`和`rear`分别为0(表示数组的第一个位置)。
3. 当向队列添加元素(enqueue)时,将新元素存放在`rear+1`的位置,并更新`rear`指针。
4. 当从队列中移除元素(dequeue)时,如果`front`等于`rear`说明队列为空,抛出异常;否则,返回并移动`front`指针到下一个位置,然后递增`front`。
5. 查看队首元素(peek)时,不改变队列状态,直接返回当前`front`指向的元素。
以下是简单的Java代码示例:
```java
public class QueueArray {
private int[] queue;
private int front, rear;
public QueueArray(int size) {
queue = new int[size];
front = rear = 0;
}
// 添加元素到队尾
public void enqueue(int value) {
if (rear == queue.length - 1) {
throw new IllegalStateException("Queue is full");
}
queue[rear] = value;
rear++;
}
// 从队头移除元素
public int dequeue() {
if (front == rear) {
throw new IllegalStateException("Queue is empty");
}
int removedValue = queue[front];
front++;
return removedValue;
}
// 查看队首元素但不移除
public int peek() {
if (front == rear) {
throw new IllegalStateException("Queue is empty");
}
return queue[front];
}
// 其他队列操作...
}
```
阅读全文