队列的特点:先进先出(这里改成了in和out放在一起)
以下为实现
扩容
首先我们必须知道什么时候算是数组满的情况,从下图当中我们我们可以看出in代表对列的输入,out代表对列的输出
public class Queue {
private int[] arr; // 该数据用于存放数据, 模拟队列
private int front; // 队列头
private int rear; // 队列尾
//构造方法
public Queue(int size){
arr = new int[size];
front = 0;
rear = 0;
}
//数据添加
public void insert(int value) {
if(rear - front == arr.length) {
int[] brr = new int[arr.length * 2];
for (int i = front;i<rear;i++){
brr[i % brr.length] = arr[i % arr.length];
}
arr = brr;
}
arr[rear%arr.length] = value;
rear ++; //让rear向后移动
}
//取出数据
public int remove() {
//判断数据是否为空
int value = arr[front%arr.length];
front ++ ;
return value;
}
}
public class Queue {
private int[] arr; // 该数据用于存放数据, 模拟队列
private int front; // 队列头
private int rear; // 队列尾
//构造方法
public Queue(int size){
arr = new int[size];
front = 0;
rear = 0;
}
//数据添加
public void insert(int value) {
arr[rear] = value;
rear ++; //让rear向后移动
}
//取出数据
public int remove() {
//判断数据是否为空
int value = arr[front];
front ++ ;
return value;
}
}