Deque 是连续缓冲区中的一系列值,可以自动增长和收缩。它是“double-ended queue”的常见缩写,可由 Ds\Queue 在内部使用。
两个指针可用于跟踪头和尾,指针可以环绕缓冲区的末尾,从而避免了移动其他值以腾出空间的需要。这可以非常快速地进行移位和取消移位。
按索引访问值可能需要索引与其在缓冲区中的相应位置之间的转换:((head + position) % capacity)。
优点
- 支持数组语法([] 方括号)。
- 对于相同数量的值,使用的总内存比数组少。
- 当其大小下降到足够低时,自动释放分配的内存。
- get()、set()、push()、pop()、shift() 和 unshift() 都是 O(1)。
缺点
- 容量必须是 2 的幂。
- insert() 和 remove() 是 O(n)。
函数列表
Deque 类提供的函数列表如下 -