队列的特点
先进先出
队列的实现
队列的基本信息
class ArrayQueue{
private int maxSize;
private int front;
private int rear;
private int[] arr;
}
队列的初始化
public ArrayQueue(int arrMaxSize){
maxSize = arrMaxSize+1;
arr = new int[maxSize];
front = 0;
rear = 0;
}
判断队是否满
public boolean isFull(){
return (rear+1)%maxSize == front;
}
判断队是否空
public boolean isEmpty(){
return front == rear;
}
入队
public void add(int n){
if (isFull()){
System.out.println("队列已满,不可加入");
return;
}
rear = (rear+1)%maxSize;
arr[rear] = n;
}
出队
public int getQueue() throws Exception {
if (isEmpty()){
throw new Exception("队列空,不能去数据");
}
return arr[++front];
}
总览(包括测试)
package DataStructure.队列;
/**
* @USER: 杨亚鹏
* @DATE: 2021/8/17
* @TIME: 10:41
* @DAY_NAME_FULL: 星期二
*/
public class ArrayQueueDemo {
public static void main(String[] args) throws Exception {
ArrayQueue queue = new ArrayQueue(5);
queue.add(1);
queue.add(2);
queue.add(3);
queue.add(4);
queue.add(5);
queue.add(6);
System.out.println(queue.getQueue());
System.out.println(queue.getQueue());
System.out.println(queue.getQueue());
System.out.println(queue.getQueue());
System.out.println(queue.getQueue());
}
}
class ArrayQueue{
private int maxSize;
private int front;
private int rear;
private int[] arr;
//构造器
public ArrayQueue(int arrMaxSize){
maxSize = arrMaxSize+1;
arr = new int[maxSize];
front = 0;
rear = 0;
}
//判断是否满
public boolean isFull(){
return (rear+1)%maxSize == front;
}
//判断是否为空
public boolean isEmpty(){
return front == rear;
}
//入队
public void add(int n){
if (isFull()){
System.out.println("队列已满,不可加入");
return;
}
rear = (rear+1)%maxSize;
arr[rear] = n;
}
//出队
public int getQueue() throws Exception {
if (isEmpty()){
throw new Exception("队列空,不能去数据");
}
return arr[++front];
}
}