编写一个java队列的方法
时间: 2023-03-15 13:05:54 浏览: 97
建立Java队列的方法如下:1. 创建一个队列类:class Queue{}2. 在队列类中声明存储元素的数组:int[] queue;3. 在队列类中声明头指针和尾指针:int front, rear;4. 初始化队列:public void initQueue(int maxSize)5. 向队列中添加元素:public void enQueue(int element)6. 从队列中删除元素:public int deQueue()7. 查看队列的头元素:public int getFront()8. 查看队列的尾元素:public int getRear()9. 判断队列是否为空:public boolean isEmpty()10. 判断队列是否已满:public boolean isFull()
相关问题
编写一个循环队列类Java
编写一个循环队列(Circular Queue)在Java中,你可以创建一个类,它包含队列的底层数据结构(如数组),以及添加(enqueue)、删除(dequeue)、查看头部元素(front)和查看队列是否为空(isEmpty)等方法。这里是一个简单的实现:
```java
public class CircularQueue<T> {
private int capacity;
private T[] queue;
private int front;
private int rear;
// 初始化队列容量
public CircularQueue(int capacity) {
this.capacity = capacity;
this.queue = (T[]) new Object[capacity];
this.front = -1;
this.rear = -1;
}
// 添加元素到队尾
public boolean enqueue(T item) {
if ((rear + 1) % capacity == front) { // 队满
return false;
} else if (front == -1) { // 队空
front = rear = 0;
} else {
rear = (rear + 1) % capacity; // 循环更新 rear
}
queue[rear] = item;
return true;
}
// 从队头删除并返回元素
public T dequeue() {
if (isEmpty()) { // 队列空
throw new IllegalStateException("Queue is empty");
}
T removedItem = queue[front]; // 保存并移除首部元素
if (front == rear) { // 队列为单元素
front = rear = -1;
} else {
front = (front + 1) % capacity; // 更新 front
}
return removedItem;
}
// 查看队列是否为空
public boolean isEmpty() {
return front == -1 || front > rear;
}
// 返回队头元素,但不会删除
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Queue is empty");
}
return queue[front];
}
编写一个java程序,实现队列
### 回答1:
下面是一个实现队列的简单Java程序:
```
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
// 添加元素到队列
queue.add(10);
queue.add(20);
queue.add(30);
System.out.println("队列元素:" + queue);
// 获取队首元素但不删除
int head = queue.peek();
System.out.println("队首元素:" + head);
System.out.println("队列元素:" + queue);
// 获取队首元素并删除
head = queue.poll();
System.out.println("队首元素:" + head);
System.out.println("队列元素:" + queue);
}
}
```
运行结果:
```
队列元素:[10, 20, 30]
队首元素:10
队列元素:[10, 20, 30]
队首元素:10
队列元素:[20, 30]
```
### 回答2:
在Java中,我们可以使用数组或链表来实现队列。这里我以数组实现队列为例进行说明。
首先,我们需要定义一个Queue类来表示队列。该类包含一个数组来存储队列中的元素,以及两个指针front和rear来指示队列的头部和尾部。我们还可以定义一个变量size来记录队列中元素的个数,方便后续的操作。
一个简单的实现如下:
```
public class Queue {
private int maxSize; // 队列的容量
private int[] queueArray; // 存储队列元素的数组
private int front; // 队头指针
private int rear; // 队尾指针
private int size; // 队列中元素的个数
public Queue(int maxSize) {
this.maxSize = maxSize;
queueArray = new int[maxSize];
front = 0;
rear = -1;
size = 0;
}
public boolean isEmpty() {
return size == 0;
}
public boolean isFull() {
return size == maxSize;
}
public void enqueue(int element) {
if (!isFull()) {
rear = (rear + 1) % maxSize;
queueArray[rear] = element;
size++;
System.out.println("元素 " + element + " 入队成功");
} else {
System.out.println("队列已满,无法入队");
}
}
public int dequeue() {
if (!isEmpty()) {
int element = queueArray[front];
front = (front + 1) % maxSize;
size--;
return element;
} else {
System.out.println("队列为空,无法出队");
return -1;
}
}
public int peek() {
if (!isEmpty()) {
return queueArray[front];
} else {
System.out.println("队列为空");
return -1;
}
}
}
```
我们可以在主函数中进行测试:
```
public static void main(String[] args) {
Queue queue = new Queue(5);
System.out.println("队列是否为空:" + queue.isEmpty());
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println("队列的头元素:" + queue.peek());
System.out.println("队列是否已满:" + queue.isFull());
System.out.println("队列长度:" + queue.size);
queue.dequeue();
System.out.println("队列的头元素:" + queue.peek());
System.out.println("队列长度:" + queue.size);
}
```
运行上述程序,可以看到队列的入队、出队和获取队头元素的操作都是按照队列的特性来进行的,从而实现了队列的功能。
### 回答3:
编写一个Java程序实现队列,需要定义一个Queue类来表示队列,以下是一个简单的实现示例:
```java
public class Queue {
private int maxSize; // 队列的最大容量
private int front; // 队头的索引
private int rear; // 队尾的索引
private int[] queueArray; // 存放队列元素的数组
public Queue(int size) {
maxSize = size;
queueArray = new int[maxSize];
front = 0;
rear = -1;
}
public void insert(int value) {
if (rear == maxSize - 1) {
System.out.println("队列已满,无法插入新的元素!");
return;
}
queueArray[++rear] = value;
}
public int remove() {
if (isEmpty()) {
System.out.println("队列为空,无法移除元素!");
return -1;
}
int temp = queueArray[front++];
return temp;
}
public int peekFront() {
return queueArray[front];
}
public boolean isEmpty() {
return (rear == front - 1);
}
}
```
以上代码定义了一个Queue类,包含插入元素、移除元素、获取队头元素和判断队列是否为空的方法。在插入元素时,先检查队列是否已满;在移除元素时,先检查队列是否为空。
阅读全文