什么是队列?
添加和删除只能在队列的两端进行的线性表
队列是一种运算受限制的线性表,元素的添加操作在表的一端进行,而元素的删除操作在表的另一端进行。
什么是队头?队尾?
允许插入的一端称为队尾(rear),
允许删除的一端称为队头(front)。
队列同现实生活中的等车、买票的排队类似,新来的成员总是加入到队尾,每次离开队列的总是队头上的,即当前“最老的”成员。向队列添加元素称为入队,从队列中删除元素称为出队。新入队的元素只能添加在队尾,出队的元素只能是队头的元素
队列的特点
队列的特点是先进入队列的元素先出队,所以队列也称作先进先出表或FIFO(First In First Out)
表。假设队列为
q =(a1,a2,…,an)
,那么,a1
就是队头元素,an
则是队尾元素。队列q中的元素按照a1,a2,…,an
的顺序进入队列,退出队列也只能按照这个次序依次退出,也就是只有a1,a2,…,an-1
都退出队列后,队尾元素an才能退出队列。队列的示意图如图3.6所示。
队列的基本操作
队列的基本操作
(1)初始化——构造一个空的队列
(2)入队——在队列的队尾插入一个新元素
(3)出队——删除队列队头元素
(4)获取对头——取队列队头元素
(5)求长度——求出队列中数据元素的个数
(6)判空——判断当前队列是否为空
(7)正序遍历——依次访问队列中每个元素并输出
(8)销毁——销毁一个已存在的队列
队列的java实现
- 数组实现
- 链表实现