一.队列的概念
-
先进先出
-
有序链表,可用数组或链表实现
-
数组模拟队列:
本身是有序列表,需要两个变量front首指针和rear尾指针,maxsize代表队列最大容量
- front=rear时队列为空
- rear=maxsize-1时队列为满
-
这样实现是否有问题?
二.数组模拟队列
编写代码来实现一下数组模拟队列,首先编写一个ArrayQueue类,定义队列的一些基本操作方法:
package com.Queue;
public class ArrayQueue {
private int maxSize;//队列的最大容量
private int front;//队列头部
private int rear;//队列尾
private int[] arr;//数组模拟队列
//创建队列的构造器
public ArrayQueue(int arrmaxSize) {
maxSize = arrmaxSize;
arr = new int[maxSize];
front = -1;
rear = -1;//初始化
}
//判断队列是否为满
public boolean isFull() {
return rear == maxSize - 1;
}
//判断队列是否为空
public boolean isEmpty() {
return rear == front;
}
//添加数据到队列
public void addQueue(int n) {
if (isFull()) {
System.out.println("队列满,不能加入数据");
return;
}
rear++;//rear后移
arr[rear] = n