队列及队列优化
什么是队列
- 队列是一个有序列表,可以用数组或是链表来实现
- 遵循先入先出的原则,即:先存入队列的数据,要先取出,后存入的数据要后取出
- 示意图:(使用数组模拟队列示意图)
下面展示一些 内联代码片
。
package com.lrc;
public class DuiL {
private int maxSize;//表示数组的最大容量
private int front;//队列头
private int rear;//队列尾
private int[] arr;//创建数组,用于存放数据,模拟队列
//创建队列构造器
public DuiL(final 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 addDui(int n) {
//判断队列是否满了
if(isFull()) {
System.out.println("队列已满,不能加数据");
return ;
}
rear++;
arr[rear]=n;
}
//获取队列数据,出队列
public int getDui() {
//判断是否为空
if(isEmpty()){
//通过异常抛出
throw new RuntimeException("队列空,不能取数据");
}
front++;//front后移
return arr[front];
}
//显示所有队列
public void showDui() {
if(isEmpty()) {
System.out.println("队列为空,没有数据");
}
//遍历
for(int i=0;i<arr.length;i++) {
System.out.println("arr["+i+"]="+arr[i]+