Лабораторная работа № 4
Сбалансированные бинарные деревья
Цель работы
-
Программно реализовать управление сбалансированным бинарным деревом: поиск, добавление, удаление узлов, проверка баланса узлов, в случае нарушения баланса его восстановление путем однократного и двукратного поворотов.
Методические указания
Перед выполнением индивидуального задания ознакомиться с тем, что такое дерево, двоичное дерево, сбалансированное дерево, управление таким деревом, анализом алгоритмов управления.
При выполнении индивидуального задания придерживаться следующей последовательности действий:
-
изучить словесную постановку задачи;
-
разработать программу, решающую поставленную задачу;
-
отладить и оттестировать программу;
-
написать и представить к защите отчет по работе.
Содержание отчета
-
Титульный лист.
-
Словесная постановка задачи.
-
-
Описание алгоритма поиска
-
Описание алгоритма добавления элемента в дерево
-
Описание алгоритма удаления элемента из дерева
-
Пример на малое левое вращение (однократный левый поворот)
-
Пример на малое правое вращение (однократный правый поворот)
-
Пример на большое левое вращение (двукратный левый поворот)
-
Пример на большое правое вращение (двукратный правый поворот)
-
-
Алгоритм решения задачи в текстуальном виде
-
Контрольный тест.
-
Листинг программы.
-
Ответы на контрольные вопросы по согласованию с преподавателем.
Контрольные вопросы
-
Что такое дерево, двоичное дерево, поддерево?
-
Что такое корень дерева, лист дерева, высота поддерева, высота дерева?
-
Приведите рекурсивное определение дерева, определение упорядоченного дерева.
-
Какое дерево называется полным?
-
Как надо изменить процедуру добавления элемента в дерево, чтобы она корректно работала в случае, если вершина в дереве уже есть?
-
Приведите определение идеально сбалансированного дерева и дерева, сбалансированного по АВЛ.
Варианты индивидуальных заданий
В этой лабораторной работе задание общее для всех –
программно реализовать управление сбалансированным бинарным деревом: поиск, добавление узлов, удаление узлов, проверка баланса узлов, в случае нарушения баланса его восстановление путем однократного и двукратного поворотов.