Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы и структуры данных.doc
Скачиваний:
172
Добавлен:
11.03.2015
Размер:
2.05 Mб
Скачать

Назначение процедур и функций:

InitTree — инициализация дерева;

CreateRoot — создание корня;

WriteDataTree — запись данных в дерево;

ReadDataTree — чтение элемента дерева;

IsLSon — проверка на наличие левого сына;

IsRSon — проверка на наличие правого сына;

MoveToLSon — переход к левому сыну;

MoveToRSon — переход к правому сыну;

IsEmptyTree — проверка: дерево пусто или нет;

DelTree — удаление листа.

С о д е р ж а н и е о т ч е т а

1. Тема лабораторной работы.

2. Цель работы.

3. Характеристика СД «дерево» (п.1 задания).

4. Индивидуальное задание.

5. Тексты модулей на языках Pascal и С для реализации СД «дерево», тексты программ для отладки модулей, тестовые данные и результат работы программ.

6. Тексты программ на языках Pascal и С для решения задачи с использованием модулей, тестовые данные, результаты работы программ.

Т е о р е т и ч е с к и е с в е д е н и я

Дерево — конечное непустое множество Т, состоящее из одной или более вершин таких, что выполняются следующие условия:

1) Имеется одна специально обозначенная вершина, называемая корнем данного дерева.

2) Остальные вершины (исключая корень) содержатся в m 0 попарно непересекающихся множествах Т1, Т2, …, Тm, каждое из которых в свою очередь является деревом. Деревья Т1, Т2, …, Тm называются поддеревьями данного корня.

Наиболее наглядным способом представления дерева является графический (рис.20), в котором вершины изображаются окружностями с вписанной в них информацией и корень дерева соединяется с корнями поддеревьев Т1, Т2, …, Тm, дугой (линией).

Рис.20. Графический способ представления дерева

Если подмножества Т1, Т2, …, Тm упорядочены, то дерево называют упорядоченным. Если два дерева считаются равными и тогда, когда они отличаются порядком подмножеств Т1, Т2, …, Тm, то такие деревья называются ориентированными деревьями. Конечное множество непересекающихся деревьев называется лесом.

Количество подмножеств для данной вершины называется степенью вершины. Если такое количество равно нулю, то вершина является листом. Максимальная степень вершины в дереве — степень дерева. Уровень вершины — длина пути от корня до вершины. Максимальная длина пути от корня до вершины определяет высоту дерева (количество уровней в дереве).

Бинарное дерево — конечное множество элементов, которое может быть пустым, состоящее из корня и двух непересекающихся бинарных деревьев, причем поддеревья упорядочены: левое поддерево и правое поддерево. В дальнейшем будем рассматривать только СД типа «бинарное дерево» (БД). Корень дерева будем называть «отцом», корень левого поддерева — «левым сыном», а корень правого поддерева — «правым сыном». На рис.21 приведен пример графического представления БД.

уровень 0

уровень 1

уровень 2

уровень 3

Рис.21. Графическое представление БД

БД — динамическая структура. Над СД БД определены следующие основные операции: инициализация, создание корня, запись данных, чтение данных, проверка — есть ли левый сын, проверка — есть ли правый сын, переход к левому сыну, переход к правому сыну, проверка — пустое ли дерево, удаление листа.

Кардинальное число СД БД определяется по формуле

CAR(БД) = ((2i)! / ((i + 1)(i!)2))·CAR(BaseType) + 1 ,i=1…max,

где CAR(BaseType) — кардинальное число элемента БД типа BaseType, max — максимальное количество элементов в БД (не всегда определено, т.к. может зависеть от объема свободной динамической памяти).

На абстрактном уровне БД представляет собой иерархическую структуру — дерево.

На физическом уровне БД реализуется связной схемой хранения. Располагаться БД может в статической или динамической памяти.