队列

来源:互联网 发布:nodejs nginx 部署 编辑:程序博客网 时间:2024/06/06 02:34

队列概述

队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
–队尾(rear)——允许插入的一端
–队头(front)——允许删除的一端
队列特点:先进先出(FIFO)

队列的结构

如下图所示:

线性表的操作主要包括:

1清空队列

(2)判断是否为空

3)元素的个数

4)入队列

5)出队列

(6)取对头元素



顺序循环队列

结构模型


存在问题

设数组长度为M,则:

当front=0,rear=M时,再有元素入队发生溢出——真溢出 
当front!=0,rear=M时,再有元素入队发生溢出——假溢出
解决方案
队首固定,每次出队剩余元素向下移动——浪费时间
循环队列
»基本思想:把队列设想成环形,让sq[0]接在sq[M-1]之后,若rear+1==M,则令rear=0;




链式队列

结构模型

设队首、队尾指针front和rear,front指向头结点,rear指向队尾



0 0