Мы с Вами рассмотрели уже довольно много структур данных, но я и не думал на этом останавливаться, так что в данной статье предлагаю рассмотреть еще одну структуру, название которой дек.
Дек (от англ. deque — double ended queue; двусвязная очередь, очередь с двумя концами) — линейная структура (последовательность), в которой операции включения и исключения элементов могут выполняться как с одного, так и с другого конца последовательности.
Дек — симбиоз стека и очереди, то есть дисциплинами обслуживания являются одновременно LIFO и FIFO.
- Инициализация
- Включение элемента в начало / конец дека
- Исключение элемента из начала / конца дека
- Проверка: дек пуст / не пуст
- Удаление дека
Обычно для реализации дека используют двусвязный линейный список, то есть на основе готовых функций списка создают новые для дека. Иными словами, для реализации нам придется написать несколько оберток, как мы это делали при реализации стека на ОЛС.
Файл «Deck_List_Two.h»
Файл «Deck_List_Two.c»
Дек готов! Вот мы и пополнили запас знаний еще одной структурой данных. Также напоминаю, если у Вас возникли вопросы, пишите их в комментариях. А на этом все. Удачи!