循环队列的入队出队java
时间: 2024-05-09 20:11:52 浏览: 96
队列 循环队列 入队 出队
4星 · 用户满意度95%
循环队列是一种基于数组实现的队列数据结构,它具有固定大小的缓冲区,并且可以循环利用空间。在循环队列中,当队列满时,新的元素会从队列的开头重新插入,实现循环利用。
在Java中,可以使用数组来实现循环队列。以下是循环队列的入队和出队操作的Java代码示例:
```java
public class CircularQueue {
private int[] queue;
private int front; // 队头指针
private int rear; // 队尾指针
private int size; // 队列当前元素个数
private int capacity; // 队列容量
public CircularQueue(int capacity) {
this.capacity = capacity;
queue = new int[capacity];
front = 0;
rear = -1;
size = 0;
}
public boolean isEmpty() {
return size == 0;
}
public boolean isFull() {
return size == capacity;
}
public void enqueue(int item) {
if (isFull()) {
System.out.println("队列已满,无法入队!");
return;
}
rear = (rear + 1) % capacity;
queue[rear] = item;
size++;
}
public int dequeue() {
if (isEmpty()) {
System.out.println("队列为空,无法出队!");
return -1;
}
int item = queue[front];
front = (front + 1) % capacity;
size--;
return item;
}
}
```
使用示例:
```java
public class Main {
public static void main(String[] args) {
CircularQueue queue = new CircularQueue(5);
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println(queue.dequeue()); // 输出:1
System.out.println(queue.dequeue()); // 输出:2
queue.enqueue(4);
queue.enqueue(5);
queue.enqueue(6); // 队列已满,无法入队!
System.out.println(queue.dequeue()); // 输出:3
System.out.println(queue.dequeue()); // 输出:4
System.out.println(queue.dequeue()); // 输出:5
System.out.println(queue.dequeue()); // 队列为空,无法出队!输出:-1
}
}
```
阅读全文