一、熟悉队列的基本概念
只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表
(1)进行插入操作的一端称为队尾(入队列)
(2)进行删除操作的一端称为队头(出队列)
(3)队列具有先进先出(FIFO)的特性
二、 队列的性质
队列是一种操作受限制的线性表
三、 队列存储结构
1、顺序队列:
(1)队头不动,出队列时队头后的所有元素向前移动
缺陷:操作时如果出队列比较多,要搬移大量元素
(2)队头移动,出队列时队头向后移动一个位置
缺陷:可能会发生假溢出(顺序队列因多次入队列和出队列操作后出现的尚有存储空间但不能再进行
入队列操作的溢出)
真溢出:顺序队列最大存储空间已经存满而又要求进行入队列操作所引起的溢出
2、循环队列:
循环队列(解决“假溢出”的办法就是后面满了,从头再开始,将头尾相接的顺序存储队列称为循环队列)
(rear + 1) % (空间大小) == front则队满
循环队列如何解决队列空或者满?
(1)少用一个存储单元:(队尾指针加一等于队头)
(2)设置一个标记位:(对头,队尾在同一位置:flag = 1存满了;flag = 0空)
(3)设置一个计数器:(co