Python数据结构与算法(3.5)——双端队列
0. 学习目标
双端队列是另一个线性数据结构。虽然它也是一种受限线性表,但与栈和队列不同的是,双端队列的限制很少,它的基本操作也是线性表操作的子集,但从数据类型的角度来讲,它们与线性表又有着巨大的不同。本节将介绍双端队列的定义及其不同实现,并且给出双端队列的一些实际应用。
通过本节学习,应掌握以下内容:
- 双端队列的基本概念及不同实现方法
- 双端队列基本操作的实现及时间复杂度
- 利用双端队列的基本操作实现复杂算法
1. 双端队列的基本概念
1.1 双端队列的基本概念
双端队列 (double-end queue
, deque
) 也是插入和删除操作分别被限制在序列两端的线性表,但与栈和队列不同的是,双端队列的限制很少,对于双端队列而言,队尾 (rear
) 和队头 (front
) 均允许插入元