1.队列的认知
1.1队列的初认知:
- 生活实际中的队列:例如银行排队,取餐排队等等
- 队列的特点:先进先出
2实现队列的方式:
- 数组(顺序存储)
- 链表(非线性存储);
3.数组实现队列的思路
如图所示:
Maxsize为数组的最大长度。front 为队列的头指针,rear为队列的尾指针,最开始他们都指向-1;
当队列为空时:rear= front;
当队列已满时:rear = Maxsize-1;
4.数组模拟队列的构建,出队,入队的操作
4.1队列的构造和入队出队
public class Queue {
int maxSize;//队列最大容量
int rear;//模拟队尾头指针
int front;//模拟队列头指针
Object[] array; //使用数组模拟队列
/**
* 队列初始化
*
* @param maxSize 队列最大容量
* @return
*/
public Queue(int maxSize) {
rear = -1;
front = -1;
this.maxSize = maxSize;
this.array = new Object[maxSize];
}
/**
* 入队方法
*
* @param e 入队元素
* @return
*/
public boolean enQueue(int e) {
if (rear >= maxSize - 1) {
System.out.println("队满,入队失败!");
return false;
} else {
rear++;//指针后移
array[rear] = e;//存入元素,入队
}
return true;
}
/**
* 出队方法
*
* @return
*/
public Object deQueue() {
if (front == rear) {
System.out.println("队空,出队失败!");
throw