一.简介
特点:先进先出,后进后出
队列是一种线性结构,可以使用数组和链表进行模拟
1.队列图:
2.真溢出图
3.假溢出,解决办法:font不动,让后面的元素上前,font向前
二.使用数组模拟队列
public class ArrayQueue {
/**
* 队列的大小
*/
public int queueSize;
/**
* 数组,用于存放队列的元素
*/
public int [] queueArray;
/**
* 队头
*/
public int font = -1;
/**
* 队尾
*/
public int rear = -1;
/**
* 构造方法
*/
public ArrayQueue(int queueSize) {
this.queueSize = queueSize;
queueArray = new int[this.queueSize];
}
/**
* 判断是否是空队列
*/
public boolean isEmpty(){
return font == rear;
}
/**
* 判断队列是否满
*/
public boolean isFull(){
return rear+1 == queueSize;
}
/**
* 添加一个元素到队列中
*/
public void addQueue(int i){
if (isFull()){
System.out.println("队列满了,不能添加元素");
return;
}
if (isEmpty()){
rear++;
}
queueArray[rear++] = i;
}
/**
* 把队列中的第一个元素删除
*/
public void deleteQueue(){
if (isEmpty()){
System.out.println("空队列,无元素");
return;
}
if (font == -1){
font = 0;
}
font++;
}
/**
* 查询队列中的元素
*/
public void queryQueue(){
if (isEmpty()){
System.out.println("空队列");
return;
}
int i =0;
if (font != -1){
i = font;
}
for (;i<rear;i++){
System.out.println(queueArray[i]);
}
}
}