- •Теоретические положения
- •1.1. Деревья. Основные понятия
- •1.2. Реализация деревьев
- •1.3. Авл-деревья
- •1.4. В-деревья
- •1.5. Алгоритмы на графах
- •2. Задания к лабораторному практикуму
- •2.3. Лабораторная работа №3 «Программирование алгоритмов реализации и обработки графов»
- •3. Содержание отчета
- •Приложение
- •Нелинейные структуры данных
2. Задания к лабораторному практикуму
2.1. Лабораторная работа №1
«Программирование алгоритмов реализации и обработки древовидных структур неспециального вида»
Цель работы
Получение навыков реализации и использования деревьев неспециального вида, анализ эффективности работы с ними.
Задание
Осуществить программную реализацию одного из деревьев, выбранных из табл. 1 приложения, в соответствии с заданным номером варианта. Программой должны выполняться функции (п. 1.1) по работе с деревом. Следует предусмотреть удобный пользовательский интерфейс, позволяющий создавать дерево и осуществлять его обработку. По результатам работы программы необходимо оценить зависимость среднего времени операции произвольного доступа к элементу от размера дерева (количества уровней и количества узлов). В программе следует предусмотреть генерацию дерева заданной степени, предоставляя пользователю возможность указывать среднюю степень узла и дисперсию. Например, если для некоторого дерева среднее равно шести, а дисперсия – двум, то в среднем по дереву у каждого узла будет примерно от 4 до 8 потомков (необходимо учитывать также максимальную степень дерева). Для генерации количества узлов следует использовать закон распределения, указанный в табл. 1 для выбранного варианта задания. К сгенерированному дереву должны быть применимы все реализованные функции. Помимо перечисленных в п. 1.1, обязательными являются функции просмотра дерева, просмотра последовательностей обхода дерева. Можно реализовать иные дополнительные функции.
Контрольные вопросы
Деревья – основные понятия, способы обхода.
Функции, выполняемые над деревьями.
Представление деревьев с помощью массива.
Представление деревьев посредством списков дочерних узлов.
Представление деревьев с помощью указателей.
2.2. Лабораторная работа №2
«Программирование алгоритмов реализации и обработки древовидных структур специального вида»
Цель работы
Получение навыков создания и обработки АВЛ- и B-деревьев, анализ эффективности работы с ними.
Задание
Осуществить программную реализацию АВЛ- или B-дерева заданного порядка, с указанным типом ключа, выбрав из табл. 2 приложения соответствующие номеру варианта исходные параметры.
Программа должна предоставлять удобный пользовательский интерфейс, позволяющий создавать дерево (формировать пользователем или генерировать автоматически) и осуществлять предусмотренные виды его обработки.
Набор функций, необходимых для работы с деревом, должен включать, как минимум: генерацию дерева, поиск с включением узла, удаление узла, удаление дерева. С помощью статистического анализа необходимо определить формы зависимостей скоростей работы алгоритмов построения, поиска и включения, удаления и (или) перестраивания от размера дерева и построить соответствующие графики.
Контрольные вопросы
1. АВЛ-деревья.
2. Поиск с включением в АВЛ-дерево, исключение из АВЛ-дерева.
В-деревья.
Включение в В-дерево, исключение из В-дерева.
Статистический анализ скоростей выполнения операций вставки/удаления в АВЛ-, В-деревья.
