Сегодня я предлагаю Вам вспомнить о том, что такое очередь. Не ту очередь, что в магазине, а структуру данных :). Об очередях в блоге уже есть две статьи: "Очередь на массиве и ее реализация на языке Си" и "Очередь с приоритетами". Для полной, так сказать, коллекции не хватает очереди на списке, которой мы сейчас с Вами и займемся.
Мы будем поступать таким же способом, как и тогда, когда реализовывали стек на списке, а именно, в заголовочном файле очереди подключим модуль со списком. Затем, имея все функции списка, напишем обертки для очереди.
Перед началом, хочу заметить, что реализация очереди будет иметь небольшое отличие от той же реализации стека на списке. Дело в том, что добавлять новый элемент нужно в конец очереди, а исключать — элемент, стоящий в начале. Если вспомнить, то в стеке мы включение и исключение элемента производили с одной стороны (с начала).
Теперь, когда все нюансы уточнены, можем смело браться за реализацию.
Файл "Queue_List.h"
Файл "Queue_List.c"
Вот и все. Не так уж и сложно было. Не так ли? :). Также напоминаю, если Вам что-то не понятно и/или возникли вопросы, Вы можете задать их в комментариях под статьей. Удачи!