👜22. Динамические структуры данных. Односвязный список, стек и очередь. Алгоритмы их обработки.

Динамические структуры данных - составные структуры данных, динамически меняющие свой размер во время выполнения программы.

Односвязный список

Однонаправленный (односвязный) список - динамическая структура данных, состоящая из узлов (Node). Каждый узел хранит значение и указатель на следующий узел. Последний узел хранит указатель на NULL.

// Пример реализации узла
struct Node {
    Book data;  //поле данных
    struct Node* next; //укзатель на следующий элемент
};

Доступные операции:

  1. Создание списка

  2. Добавление элемента в список

  3. Удаление узла списка

  4. Удаление всего списка

  5. Операции обхода списка

Создание списка

Добавление элемента в список:

  1. Выделить память под элемент

  2. Добавить в него ссылку на следующий

  3. Связать предыдущий элемент с новым

Удаление элемента из списка:

  1. Связать предыдущий и следующий

  2. Очистить память от текущего

Удаление корня списка

Стек

Стек - динамическая структура данных, организованная по принципу LIFO (Last in first out).

std::stack - реализация стека

Очередь

Очередь - динамическая структура данных, организованная по принципу FIFO (First in first out).

std::queue - очередь

Last updated