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

17. Абстрактный тип данных «Список»

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

Пример списка:

E1, E2, ........, En,... n > 1 и не зафиксировано.

Количество элементов списка может меняться в процессе выполнения программы. Различают 2 вида списков:

1) Несвязные

2) Связные

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

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

18. Методы реализации списков

Реализация списков посредством массивов

При реализации списков с помощью массивов элементы списка располагаются в смежных ячейках массива.

Легко просматривать содержимое списка и вставлять новые элементы в его конец.

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

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

Реализация списков посредством указателей

Используются указатели, связывающие последовательные элементы списка. Эта реализация освобождает от использования непрерывной области памяти для хранения списка и от необходимости перемещения элементов списка при вставке или удалении элементов.

Однако ценой за это удобство становится дополнительная память для хранения указателей.

19. Двунаправленные списки

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

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

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

20. Абстрактный тип данных «Стек»

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

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

Операции, производимые над стеками:

1. Занесение элемента в стек.

2. Выборка элемента из стека.

3. Определение пустоты стека.

4. Прочтение элемента без его выборки из стека.

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