(PECL ds >= 1.0.0)
Un Deque (pronunciado “deck”) es una secuencia de valores en un búfer contiguo que crece y se contrae automáticamente. El nombre es una abreviación inglesa común de “double-ended queue” (cola de doble final) y es usado internamente por Ds\Queue.
Dos punteros son usados para mantener el seguimiento de una cabecera y una cola. Los punteros pueden “envolver alrededor” el final del búfer, lo cual evita la necesidad de mover otros valores alrededor para hacer un espacio. Esto permite que hacer cambios y deshacer cambios sean muy rápidos — algo en que Ds\Vector no puede competir.
Accediendo a un valor por el índice requiere una traducción entre el índice y su
posición correspondiente en el búfer: ((cabecera + posición) % capacidad)
.