Деление на ноль

Дек: интерактивная анимация (Deque)

Двусторонняя очередь: структура, обобщающая очередь и стек

Визуализация

Сценарий: Работа с двух концов
Сценарий:
Легенда цветов
элемент в деке вставка/извлечение (спереди) вставка/извлечение (сзади)
Нажмите "Пуск" или листайте по шагам.
Размер: 0 Операций: 0 Шаг: 0 / 0 Сложность по времени: -

Как работает дек

Идея структуры: Дек (Deque, читается как "дэк", сокращение от Double-Ended Queue) представляет собой гибридную структуру данных. В отличие от стандартной очереди, где элементы добавляются строго в конец и удаляются строго из начала, дек позволяет совершать и вставку, и удаление на обоих концах списка.

Сложность

Сложность - это оценка того, как быстро растет потребление ресурса при росте числа элементов n. Ресурса у структуры два, поэтому и оценки две: по времени и по памяти. Обе записывают через O-нотацию - у нас есть отдельная анимация о том, как читать такие записи.

Если дек реализован эффективно (на базе связного списка с указателями на голову и хвост или на базе кольцевого буфера), все его операции выполняются за константное время.

По времени

Операция Время Комментарий
Добавление в начало (pushFront) O(1) Обновление указателя начала и запись значения.
Добавление в конец (pushBack) O(1) Обновление указателя конца и запись значения.
Удаление из начала (popFront) O(1) Чтение значения и сдвиг указателя начала.
Удаление с конца (popBack) O(1) Чтение значения и сдвиг указателя конца.

По памяти

Характеристика Оценка Комментарий
Затраты памяти O(n) Требуется память для хранения самих элементов (в узлах списка или массиве).

Свойства

Свойство Значение Комментарий
Доступ к концам O(1) Мгновенный доступ как к первому, так и к последнему элементу.
Доступ в середину O(n) Стандартный дек не предоставляет быстрого доступа к произвольному индексу по O(1) (кроме реализаций на массивах).
Универсальность Стек/Очередь Дек способен заменить любую из этих базовых структур, в зависимости от того, какие методы вы вызываете.

Примеры реализации: Дек (Deque)

Хотите разобрать тему глубже? В нашем бесплатном курсе есть урок про дек и его применение - с подробной теорией, задачами и проверочными вопросами.