Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЭИС ответы.doc
Скачиваний:
2
Добавлен:
20.04.2019
Размер:
238.08 Кб
Скачать

27. Цепная организация данных. Список.

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

Простейшим методом, применяемым для этих целей, является списковая (цепная) организация данных.

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

Адрес связи – атрибут в котором хранится начальный адрес или номер записи обрабатываемой после этой записи.

2 способа организации списка:

•Совместное размещение собственной и ассоциативной информации. Запись и ее адрес связи образуют одно целое.

•Раздельное, когда имеется списковая организация адресов связи и последовательное хранение собственной информации.

При формировании упорядоченного списка записей возможны два варианта:

•Вновь поступившие записи вставлять так, чтобы не нарушать упорядоченность по ключу.

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

Для поиска данных в однонаправленном списке используется – последовательный поиск. Ключ атрибута первой записи сравнивается с искомым значением q, затем такое же сравнение выполняется для ключа второй записи, которая извлекается по адресу связи первой записи и тд.

Время поиска пропорционально T~M.

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

28. Цепная организация данных. Цепной каталог.

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

Простейшим методом, применяемым для этих целей, является списковая (цепная) организация данных.

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

Включение и исключение записей в цепном каталоге предполагает поиск включаемой/исключаемой записи и замену значений адресов связи для установления новой последовательности записей основного списка.

Алгоритм вставки записи с ключом F в цепной каталог:

•Найти в каталоге запись с ключом непосредственно меньше чем F.

•Поместить запись с ключом F в первую позицию свободной памяти.

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

Для корректировки цепного каталога время будет пропорционально длине массива T~M.

29. Древовидная организация данных. Алгоритм построения упорядоченного бинарного дерева.

Древовидная организация данных – множество записей, расположенных по уровням следующим образом:

•На первом уровне расположена только одна запись.

•К любой записи i-ого уровня ведет адрес связи только от одной записи уровня i – 1.

Ранг – количество уровней дерева. Группа – записи дерева, которые адресуются от общей записи (i – 1)го уровня. Порядок дерева – максимальное число элементов в группе. Деревья обычно формируются двунаправленными, адрес связи от записи уровня i+1 к записи i-ого уровня называется обратным.

При размещении дерева в памяти ЭВМ каждая запись может занимать произвольное место.

Алгоритм построения упорядоченного бинарного дерева:

1. Первая запись массива с ключом р(1) становится корнем дерева.

2. Значение ключа второй записи р(2) сравнивается с р(1), находящимся в корне дерева. Если р(2)< р(1), то вторая запись помещается на левой от корня ветви, в противном случае на правой ветви. Сейчас получено упорядоченное дерево из первых двух записей, далее на каждом шаге создается упорядоченное дерево из первых i.

3. Выбор места i-ой записи массива производится следующим образом. Ключ р(i) сравнивается с корневым значением и выполняется переход по левому адресу ( если р(1)> р(i)),а при р(1)<= р(i) – по правому адресу. Ключ достигнутой записи также сравнивается с р(i) и снова организуется переход по левому или правому адресу. Когда будет достигнут конечный адрес связи, то он должен адресовать запись системы ключ р(i).

Искомое значение ключа q сравнивается со значением корня р(1). Если p(l)>q, просмотр дерева продолжается по левой ветви корня, если p(l)<=q - по правой. результаты сравнения означают:

  • p(i)=q - запись, удовлетворяющая условию поиска, найдена, и поиск продолжается по правой ветви p(i);

  • p(i)>q - производится переход к записи, расположенной на левой ветви p(i);

  • p(i)<q - производится переход к записи, расположенной на правой ветви p(i).

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