Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia_Struktury_dannykh.docx
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
38 Кб
Скачать
☆

Связные списки

Связный список состоит из указателя головы и нескольких блоков памяти. Указатель головы содержит адрес того блока, который считается первым в списке. Каждый блок состоит из двух частей. Одна из этих двух частей содержит значение переменной, а другая часть содержит адрес следующего по порядку блока. То есть можно считать, что вторая часть содержит указатель на следующий блок.

Блоки связного списка могут быть расположены в разных частях памяти. Это упрощает поиск места для расположения списка, особенно если он длинный. Удаление К-й по порядку переменной осуществляется изменением соответствующего указателя, который, находясь в (К-1) блоке списка, теперь будет указывать на (К+1) блок. Аналогично осуществляется добавление в конец списка нового блока. Указатель в прежнем последнем блоке теперь будет содержать адрес добавленного в конец списка блока.

Также можно вставить новый блок внутрь списка на К-ю позицию. Теперь указатель в (К-1) блоке будет указывать на К-й блок, а указатель в К-м блоке будет указывать на (К+1) блок. Такими приемами удобно пользоваться для перестановки местами элементов списка.

Поддержка абстрактного списка

Программа должна быть сделана так, чтобы к списку и, соответственно, элементам списка можно было бы обратиться без учета технических подробностей его реализации, то есть указать, например, имя списка и номер элемента A(i).

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

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

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

При обращении к списку, программа обращается в ячейку, где хранится указатель на список. Указатель на список содержит адрес первой ячейки списка (адрес его первого элемента).

Стеки

Стек это список, у которого операции добавления и удаления элементов разрешены только на одном конце. Стек можно представить как стопку элементов, в которую можно сверху добавить или взять элемент. Вершиной стека называется тот конец где возможно добавление или удаление элементов. Другой конец стека называют основанием.

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

Откат

Под термином «откат» подразумевается поиск выхода из ситуации путем выполнения действий, которые привели нас туда, в обратном порядке. Стек используется во всех процессах, где выход производится в порядке, обратном входу. Выполненные действия помещаются в стек, а затем, при выполнении их в обратном порядке, извлекаются оттуда.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]