# 队列

队列是一种『先进先出』的线性表,一般可以用链表和数组来实现,只允许在尾部插入,在头部删除。

代码位于:https://github.com/HurleyJames/DataStructure/tree/master/Queue

# 栈和队列的区别

栈和队列都是两种操作受限的线性表。

栈是限制在表的一端进行插入和删除运算的线性表,是「先进后出」的;队列是一种运算受限的线性表,只允许在标的一端进行插入,而在另一端进行删除,是『先进先出』的。

相同点

  • 都是线性结构的
  • 插入操作都是限定在表尾进行
  • 都可以通过顺序结构和链式结构实现
  • 插入和删除的复杂度都是O(1)O(1),空间复杂度也一样
  • 多链栈和多链队列的管理模式相同

不同点

  • 删除数据元素的位置不同:栈的删除操作在表尾进行,队列的删除操作在表头进行
  • 顺序栈能够实现多栈的空间共享,而顺序队列不能