Очередь на односвязном списке

d0bed187d0b5d180d0b5d0b4d18c d0bdd0b0 d0bed0b4d0bdd0bed181d0b2d18fd0b7d0bdd0bed0bc d181d0bfd0b8d181d0bad0b5 статьи

Сегодня я предлагаю Вам вспомнить о том, что такое очередь. Не ту очередь, что в магазине, а структуру данных :). Об очередях в блоге уже есть две статьи: "Очередь на массиве и ее реализация на языке Си" и "Очередь с приоритетами". Для полной, так сказать, коллекции не хватает очереди на списке, которой мы сейчас с Вами и займемся.

Мы будем поступать таким же способом, как и тогда, когда реализовывали стек на списке, а именно, в заголовочном файле очереди подключим модуль со списком. Затем, имея все функции списка, напишем обертки для очереди.

Перед началом, хочу заметить, что реализация очереди будет иметь небольшое отличие от той же реализации стека на списке. Дело в том, что добавлять новый элемент нужно в конец очереди, а исключать — элемент, стоящий в начале. Если вспомнить, то в стеке мы включение и исключение элемента производили с одной стороны (с начала).

Теперь, когда все нюансы уточнены, можем смело браться за реализацию.

Файл "Queue_List.h"

Файл "Queue_List.c"

Вот и все. Не так уж и сложно было. Не так ли? :). Также напоминаю, если Вам что-то не понятно и/или возникли вопросы, Вы можете задать их в комментариях под статьей. Удачи!

Оцените статью
Секреты программирования
Добавить комментарий