双端队列(deque)是一种具有队列和栈的特性的数据结构。它支持在两端进行插入和删除操作,因此可以在队列的两端进行快速的插入和删除操作,而不像列表(list)一样需要移动元素。在Python中,双端队列可以通过`collections`模块的`deque`类来创建和操作。
双端队列的主要操作包括:
- `append(item)`: 在队列的右端(尾部)添加一个元素。
- `appendleft(item)`: 在队列的左端(头部)添加一个元素。
- `pop()`: 移除并返回队列的最右端(尾部)的元素。
- `popleft()`: 移除并返回队列的最左端(头部)的元素。
- `extend(iterable)`: 在队列的右端(尾部)扩展一个可迭代对象中的所有元素。
- `extendleft(iterable)`: 在队列的左端(头部)扩展一个可迭代对象中的所有元素,注意扩展的顺序与可迭代对象的顺序相反。
- `rotate(n)`: 将队列中的所有元素向右移动`n`步(如果`n`为负数,则向左移动)。
双端队列的使用可以提高队列头部和尾部的操作效率,