什么是队列
可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。
队列的最大特点就是“先进先出”。
栈有两个基本操作:入栈 push()和出栈 pop()。入栈和出栈都是在栈顶。
队列最基本的操作也是两个:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素。
队列跟栈一样,也是一种操作受限的线性表数据结构。
顺序队列和链式队列
队列可以用数组来实现,也可以用链表来实现。
用数组实现的队列,我们叫作顺序队列。
用链表实现的队列,我们叫作链式队列。
数组实现一个顺序队列
用数组实现之前先说一个概念:假溢出
假溢出
作为队列用的存储区还没有满,但队列却发生了溢出,我们把这种现象称为"假溢出"
解决假溢出有两种方案:
一、将队列元素向前搬移。(如下代码就是利用此解决方案)
二、将队列看成首尾相连,即循环队列。
public class ArrayQueue {
private String[] items;
private int head; //队头
private int tail; //队尾
private int size;
public ArrayQueue(int n) {
this.items &