如何用Java实现队列顺序动态查询
时间: 2024-03-14 12:43:48 浏览: 103
要实现队列顺序动态查询,需要使用Java中的数组来存储队列元素。通过在数组中记录队首和队尾元素的位置,可以方便地实现队列的出队和入队操作。
以下是一个简单的Java代码示例,实现了队列的顺序动态查询:
```java
public class DynamicQueue {
private int[] queue; // 存放队列元素的数组
private int front; // 队首元素下标
private int rear; // 队尾元素下标
private int size; // 队列大小
// 构造函数,初始化队列
public DynamicQueue(int size) {
queue = new int[size];
front = 0;
rear = -1;
this.size = 0;
}
// 入队操作
public void enqueue(int element) {
// 如果队列已满,则扩容
if (rear == queue.length - 1) {
int[] newQueue = new int[queue.length * 2];
System.arraycopy(queue, 0, newQueue, 0, queue.length);
queue = newQueue;
}
queue[++rear] = element;
size++;
}
// 出队操作
public int dequeue() {
if (isEmpty()) {
throw new RuntimeException("Queue is empty!");
}
int element = queue[front++];
size--;
return element;
}
// 判断队列是否为空
public boolean isEmpty() {
return size == 0;
}
// 获取队列大小
public int size() {
return size;
}
// 获取队首元素
public int getFront() {
if (isEmpty()) {
throw new RuntimeException("Queue is empty!");
}
return queue[front];
}
// 获取队尾元素
public int getRear() {
if (isEmpty()) {
throw new RuntimeException("Queue is empty!");
}
return queue[rear];
}
// 打印队列元素
public void printQueue() {
System.out.print("Queue: ");
for (int i = front; i <= rear; i++) {
System.out.print(queue[i] + " ");
}
System.out.println();
}
}
```
这个`DynamicQueue`类实现了队列的基本操作,包括入队、出队、判断队列是否为空、获取队列大小、获取队首和队尾元素以及打印队列元素等。在入队操作中,如果队列已满,则会自动扩容,以适应动态查询的需求。
阅读全文