Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ИС.docx
Скачиваний:
26
Добавлен:
16.11.2019
Размер:
330.27 Кб
Скачать

3.4.2.3. Кольцевые структуры

В отличие от предыдущих методов позволяют от порожденных записей переходить к родительским. Для этого в структуре записей поддерживаются специальные ссылки на «родителей».

Представим данным методом дерево:

СУиВТ

239

ТАМ

145

Иванов И.И.

к.т.н.

доцент

234567

Петров П.П.

к.т.н.

нет

456789

Сидоров С.С.

нет

нет

123456

Яковлев Я.Я.

д.т.н.

профессор

345678

Его описание сведем в таблицы:

сотрудник кафедра

п/п

ФИО

ученая степень

научное звание

контактные данные

ссылки на подобные элементы

ссылки на родительские элементы

п/п

название

шифр в вузе

ссылки на порожденные элементы

1

Иванов И.И.

к.т.н.

доцент

234567

3

1

1

СУиВТ

239

1

2

Петров П.П.

к.т.н.

нет

456789

4

2

2

ТАМ

145

2

3

Сидоров С.С.

нет

нет

123456

1

1

4

Яковлев Я.Я.

д.т.н.

профессор

345678

4

2

Как видно, в таблице сотрудников отсутствуют пустые ссылки. Это означает, что конечные записи в цепочках подобных записей ссылаются на первые записи в этих цепочках. Так получаются «горизонтальные» кольца. Наличие таких колец позволяет решать задачи, требующие многократного просмотра записей от начала к концу. Подобная задача, например, имеет место при сортировке файла некоторыми методами. Например, когда требуется отсортировать список сотрудников кафедры СУиВТ по возрастанию значений ключа, а кафедры ТАМ – по убыванию. В то же время совокупность ссылок на порожденные и родительские записи формирует «вертикальные» кольца. Они позволяют переходить от порожденных записей к родительским, чего не было в предыдущих методах.

Задачи поиска требуемых данных в направлении просмотра дерева «сверху вниз» решаются аналогично предыдущим методам и здесь не рассматриваются.

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

Пусть надо определить, на какой кафедре работает сотрудник по фамилии и инициалам Сидоров С.С., т.е. Кдоступ=<ФИО=Сидоров С.С.>. Задача решается следующим образом:

  1. по таблице (файлу) сотрудник находят требуемого сотрудника – это запись с номером 3;

  2. выбирают значение поля ссылки на родительские элементы – это 1;

  3. по таблице (файлу) кафедра обращаются к строке (записи) с номером 1 и выводят значение поля название – это СУиВТ. Алгоритм заканчивает работу.