大话数据结构 【五】队列

 队列是一种先进先出的线性表【FIFO】

队列的抽象数据类型

【与线性表类似,但,插入数据只能在队尾进行,删除数据只能在对头进行】

 顺序存储结构

 假设n个元素,则顺序存储队列需要建立一个大于n的数组,并把队列的所有元素存储在数组的前n个单元,数组下标为0的一端即是队头

入队列操作,即在队尾加一个元素,不需要移动任何元素,因此时间复杂度为O(1)

但,出列,所有元素都要向前移动:

如果不限制队列的元素必须存储在数组的前n个单元:

为了避免只有一个元素时,队头和队尾重合处理麻烦,引入两个指针

 循环队列

 解决假溢出    ——>   后面满了,就从头开始【也就是  头尾相接的循环

把这种首尾相接的顺序存储结构称为 循环队列

 

  

 

  

链式存储结构

链队列,就是线性表的单链表,只能 尾进头出

为了操作上的方便,将队头指针指向链队列的头结点,将队尾指针指向终端结点

 

链队列的结构

 

入队【在链表尾部插入结点】

 

出队

 

 循环队列与链队列比较

 

猜你喜欢

转载自www.cnblogs.com/expedition/p/10716506.html