队列数据结构

|

6、队列

队列是一种线性数据结构,它通过执行两个主要操作(即入队enqueue和出队dequeue)来对现实世界中的队列进行建模。

6.1、术语

image-20200412095233658

  • Dequeue:出队,类似命名:Polling
  • Enqueue:入队,类似命名:Adding,Offering
  • Queue Front:对头
  • Queue Back:队尾

队列底层可以使用数组或者链表实现

6.2、使用场景

  • 任何排队等候的队伍都可以建模为Queue,例如在电影院里的队伍;
  • 可用于有效地跟踪最近添加的x个元素;
  • 用于Web服务器请求管理,保证服务器先接受的先处理;
  • 图的广度优先搜索(BFS)。

6.2.1、请用队列实现图的广度优先遍历

提示:

image-20200412103414505

遍历顺序:0 -> 2, 5 -> 6 -> 1 -> 9, 3, 2, 7 -> 3, 4, 8, 9

6.3、时间复杂度

操作 时间复杂度
入队 O(1)
Dequeue O(1)
Peeking O(1)
Contains O(n)
Removal O(n)
isEmpty O(1)

6.4、编程实践