队列(Queue)

定义

队列是一种操作受限的线性数据结构,遵循**先进先出(FIFO, First In First Out)**原则。

核心特性

  • 只能在队尾插入元素(入队,enqueue)
  • 只能在队头删除元素(出队,dequeue)
  • 类比:排队买票,先到先服务

基本 API

|,,|,,|,,,--| | push(E e) / enqueue(E e) | 向队尾插入元素 | O(1) | | pop() / dequeue() | 从队头删除并返回元素 | O(1) | | peek() / front() | 查看队头元素(不删除) | O(1) | | size() | 返回队列中元素个数 | O(1) |

底层实现

  • 基于数组实现:需使用环形数组避免空间浪费(见环形数组
  • 基于链表实现:使用双链表,头部作为队头、尾部作为队尾,增删均为 O(1)(见用链表实现队列栈

相关概念

  • BFS:广度优先搜索使用队列实现
  • 优先级队列:特殊类型的队列,按优先级出队
  • 环形数组:队列的数组实现方式
  • 链表:队列的链表实现方式

Interactive Graph