Автор работы: Пользователь скрыл имя, 14 Ноября 2010 в 19:02, курсовая работа
В данной курсовой работе разработана программа для работы с бинарным упорядоченным деревом. Программа была создана в среде Borland Delphi 7.
ПОСТАНОВКА ЗАДАЧИ
Написать программу создания, вывода и обработки бинарного дерева Т, которая выполняет следующие функции:
а) определяет, есть ли в дереве Т хотя бы два одинаковых элемента;
б) находит в дереве Т длину (число ветвей) пути от корня до ближайшей вершины с элементом Е, если Е не входит в Т, за ответ принять 1.
ВВЕДЕНИЕ……………………………………………………………………….3
ПОСТАНОВКА ЗАДАЧИ……………………………………………………….4
РАЗДЕЛ 1
Общие сведения о бинарных деревьях……………………………………..5
РАЗДЕЛ 2
Алгоритмическая часть…………………………………………………….11
РАЗДЕЛ 3
Техническое задание……………………………………………………….16
РАЗДЕЛ 4
Описание программы
3.1.Описание программного обеспечения……………………………...17
3.1.Описание интерфейса программы…………………………………..25
ВЫВОДЫ………………………………………………………………………..26
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ……………………………27
ПРИЛОЖЕНИЕ А………………………………………………………………28
Министерство образования и науки Украины
Харьковский
государственный университет
Кафедра
компьютерного моделирования и информационных
технологий
ТЕМА
БИНАРНОЕ
УПОРЯДОЧЕННОЕ ДЕРЕВО
Пояснительная записка
по курсовому проекту
по дисциплине
МОДЕЛИ
И СТРУКТУРЫ ДАННЫХ
Харьков 2009
СОДЕРЖАНИЕ:
ВВЕДЕНИЕ…………………………………………………………
ПОСТАНОВКА ЗАДАЧИ…………………………………
РАЗДЕЛ 1
Общие сведения о бинарных деревьях……………………………………..5
РАЗДЕЛ 2
Алгоритмическая часть………………………
РАЗДЕЛ 3
Техническое задание……………………………
РАЗДЕЛ 4
Описание программы
3.1.Описание программного обеспечения……………………………...17
3.1.Описание интерфейса
ВЫВОДЫ………………………………………………………………
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ……………………………27
ПРИЛОЖЕНИЕ А………………………………………………………………28
ВВЕДЕНИЕ
В данной курсовой работе разработана программа для работы с бинарным упорядоченным деревом. Программа была создана в среде Borland Delphi 7.
В
пояснительной записке
ПОСТАНОВ
Написать программу создания, вывода и обработки бинарного дерева Т, которая выполняет следующие функции:
а) определяет, есть ли в дереве Т хотя бы два одинаковых элемента;
б) находит в дереве Т длину (число ветвей)
пути от корня до ближайшей вершины с элементом
Е, если Е не входит в Т, за ответ принять
1.
РАЗДЕЛ
1.Общие сведения о бинарных
деревьях
Бинарное дерево-это конечное множество
элементов, которое либо пусто, либо содержит
один элемент, называемый корнем дерева,
а остальные элементы множества делятся
на два непересекающихся подмножества,
каждое из которых само является бинарным
деревом. Эти подмножества называются
левым и правым поддеревьями исходного
дерева. Каждый элемент бинарного дерева
называется узлом дерева.
|
Рис.1.1 «Пример бинарного дерева»
На рисунке показан общепринятый способ
изображения бинарного дерева. Это дерево
состоит из девяти узлов, А-корень дерева.
Его левое поддерево имеет корень В, а
правое- корень С. Это изображается двумя
ветвями, исходящими из А: левым - к В и
правым - к С. Отсутствие ветви обозначает
пустое поддерево. Например, левое поддерево
бинарного дерева с корнем С и правое поддерево
бинарного дерева с корнем Е оба пусты.
Бинарные деревья с корнями D, G, Н и I имеют
пустые левые и правые поддеревья.
Если А - корень бинарного дерева и В - корень его левого или правого поддерева, то говорят, что А-отец В, а В-левый или правый сын А. Узел, не имеющий сыновей (такие как узлы D, G, Н и I), называется листом.
Узел nl -предок узла n2 (а n2-потомок nl), если nl-либо отец n2, либо отец некоторого предка n2. Например, в дереве из рисунке А-предок G и Н-потомок С, но Е не является ни предком, ни потомком С.
Узел n2-левый потомок узла n1, если n2 является либо левым сыном n1, либо потомком левого сына n1. Похожим образом может быть определен правый потомок.
Два узла являются братьями, если они сыновья
одного и того же отца. Если каждый узел
бинарного дерева, не являющийся листом,
имеет непустые правые и левые поддеревья,
то дерево называется строго
бинарным деревом. Строго бинарное дерево
с n листами всегда содержит 2n-1 узлов. Пример
строго бинарного дерева приведен на рисунке
ниже.
Рис.1.2
«Строго бинарное дерево»
Уровень узла в бинарном
Полное бинарное дерево
уровня n - это дерево, в котором каждый
узел уровня n является листом и каждый
узел уровня меньше n имеет непустые левое
и правое поддеревья. На рисунке приведен
пример полного бинарного дерева уровня
3.
Рис.1.3
«Полное бинарное дерево»
Почти полное бинарное дерево - это бинарное дерево, для которого существует неотрицательное целое k такое, что:
1. Каждый лист в дереве имеет уровень k или k+1.
2.
Если узел дерева имеет
Есть еще одна разновидность бинарных деревьев, которая называется упорядоченные бинарные деревья.
Упорядоченные
бинарные деревья - это деревья, в которых
для каждого узла Х выполняется правило:
в левом поддереве - ключи, меньшие Х, в
правом поддереве - большие или равные
Х. Структура бинарного дерева построена
из узлов. Узел дерева содержит поле данных
и два поля с указателями.
Начало поиска места
Для записи с ключом «12»
указатель корня
Сюда будет включена
запись «12»
Рис.1.4 «Упорядоченное бинарное дерево»
При добавлении элемента нужно сохранить свойство упорядоченности, поэтому у добавляемого элемента существует единственное место в дереве (конечно, если такой элемент еще не присутствует в дереве). Проверка наличия элемента в дереве осуществляется тем же способом – переход от узла к узлу происходит по принципу максимального приближения к искомому значению. Если на том месте, где должен находиться искомый элемент, отсутствует поддерево, значит можно утверждать, что такого элемента нет во множестве.
Над бинарным деревом есть операция - его прохождение, т.е. нужно обойти все дерево, отметив каждый узел один раз.
Существует 3 способа обхода бинарного дерева.
В прямом порядке:
В симметричном порядке:
В обратном порядке:
Прямой порядок: ABDGCEHIF
Симметричный порядок: DGBAHEICF
Обратный порядок:
GDBHIEFCA
Рис.1.5.
«Пример
обхода бинарного дерева
Применение
Организация данных с помощью
бинарных деревьев часто
РАЗДЕЛ 2.Алгоритмическая часть
Для реализации поставленной задачи требуется разработать алгоритмы основных операций над деревом, таких как добавление элемента, удаление элемента, проверка дерева на наличие одинаковых элементов и нахождение длины пути от корня до заданной вершины.