Стек на односвязном линейном списке

d181d182d0b5d0ba d0bdd0b0 d0bed0b4d0bdd0bed181d0b2d18fd0b7d0bdd0bed0bc d0bbd0b8d0bdd0b5d0b9d0bdd0bed0bc d181d0bfd0b8d181d0bad0b5 статьи

После того, как мы узнали, что такое список, самое время начать применять полученные знания на практике. И первое, с чего мы начнем — реализуем стек, но не на массиве, а теперь уже на односвязном линейном списке.

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

Для работы со стеком нужно реализовать пять функций:

  1. Инициализация
  2. Включение элемента
  3. Исключение элемента
  4. Проверка на пустоту
  5. Удаление стека

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

Файл Stack_List.h

Файл Stack_List.c

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

На этом все, если у Вас возникли вопросы, можете задавать их в комментариях.

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