Day7 - Queue Pre-Knowledge
Day7 - 队列前置知识
1. 队列的介绍
队列是一个线性集合,可以通过在一端添加元素(排队操作),从另一端删除元素(出队列操作)。通常,添加元素的一端称为队列的后端或尾部,删除元素的一端称为队列的头部或前端。作为一种抽象数据类型,队列可以使用数组或单链表来实现。
队列的操作通常被称为FIFO(先进先出)。
广度优先搜索(BFS)通常使用队列实现。
2. 队列的实现
语言
对应接口
C++
std::queue
Java
java.util.Queue
3. 队列复杂度
操作
时间复杂度
front
O(1)
back
O(1)
push
O(1)
pop
O(1)
empty
O(1)
4. 注意的事情
有些语言没有可以使用的内置队列这个数据类型,通常使用数组(JavaScript)或列表(Python)作为队列。在这种情况下,出队列操作(假设队列的前面在左边)将是O(n),因为它需要将所有其他元素向左移动一位。
5. 队列边界条件
空队列
队列中只有一个元素
队列中只有两个元素
Last updated