(PECL ds >= 1.0.0)
Двухсторонняя очередь - это последовательность значений в непрерывном буфере, который растёт и уменьшаются автоматически. Deque (произносится как "deck") является аббревиатурой от "double-ended queue" и используется внутри Ds\Queue.
Два указателя используются для отслеживания начала и конца. Указатели могут "обернуть" конец очереди, что позволяет избежать перемещения значений для освобождения места. Это делает операции shift и unshift такими быстрыми, что Ds\Vector не может с этим соперничать.
Доступ к элементу по индексу требует пересчёта в зависимости от его индекса в буфере:
((head + position) % capacity)
.
Ds\Deque::MIN_CAPACITY