- •Информатика
- •Введение
- •Лабораторная работа № 12 рекурсивные алгоритмы. Создание рекурсивной функций
- •Лабораторная работа № 13 обработка текстовых файлов
- •Подготовка к лабораторной работе
- •Лабораторная работа № 14 создание и обработка бинарных файлов
- •Лабораторная работа № 15 динамические структуры данных стеки и очереди
- •Лабораторная работа № 16 динамические структуры данных списки
- •Лабораторная работа № 17 операции над бинарными деревьями
- •Лабораторная работа № 18
Лабораторная работа № 17 операции над бинарными деревьями
Цель работы: приобрести навыки создания и обработки бинарных деревьев.
Подготовка к лабораторной работе
При подготовке к лабораторной работе следует повторить следующие вопросы:
Понятие дерева;
Принципы организации дерева поиска;
Основные операции над деревьями;
Размещение древовидной структуры в памяти эвм.
В соответствии с индивидуальным заданием составить схему алгоритма и программу на языке C++.
Задание к лабораторной работе
В соответствии с вариантом задания разработать программу создания и обработки динамической структуры данных.
Варианты заданий:
Таблица 5
Вариант |
Условие задачи |
Вид дерева |
1 |
Построить бинарное дерево поиска. Подсчитать сумму значений всех ключей заданного бинарного дерева. Вывести узлы в порядке обхода слева. | |
2 |
Построить бинарное дерево поиска. Подсчитать количество узлов с ключом меньше 15. Вывести узлы дерева обходом сверху. | |
3 |
Построить бинарное дерево поиска. Удалить все узлы, имеющие значения ключей меньше среднего. Вывести значения узлов в порядке обхода снизу. |
|
4 |
Построить бинарное дерево поиска. Определить значение ключа самого правого узла левого его поддерева. Вывести значения узлов в порядке обхода снизу. |
|
5 |
Построить бинарное дерево поиска. Подсчитать количество узлов со значением ключа больше 5. Вывести значения узлов в порядке обхода снизу. |
|
6 |
Построить бинарное дерево поиска. Исключить из него узел с ключом 15. Определить сколько узлов расположено в левом поддереве. Вывести значения узлов в порядке обхода сверху. |
|
7 |
Построить бинарное дерево поиска. Подсчитать среднее арифметическое значение его узлов. Вывести значения узлов в порядке обхода слева |
|
8 |
Построить бинарное дерево поиска. Исключить из него узел с ключом 60. Подсчитать количество листьев. Вывести значения узлов в порядке обхода сверху. |
|
9 |
Построить бинарное дерево поиска. Определить значение ключа самого левого узла правого его поддерева. Вывести значения узлов в порядке обхода снизу. |
|
10 |
Построить бинарное дерево поиска. Подсчитать сумму значений узлов, ключи которых не превышают 14. Вывести значения узлов в порядке обхода снизу. |
|
11 |
Построить бинарное дерево поиска. Включить в него узел с ключом 33. Подсчитать количество потомков узла 30. Вывести значения узлов в порядке обхода снизу. | |
12 |
Построить бинарное дерево поиска. Исключить из него узел с ключом 11. Подсчитать количество узлов ветвления. Вывести значения узлов в порядке обхода сверху. |
|
13 |
Построить бинарное дерево поиска. Удалить все узлы, имеющие значения ключей больше 45. Вывести значения узлов в порядке обхода слева. | |
14 |
Построить бинарное дерево поиска. Включите в него узел с ключей 70. Определить сумму наибольшего и наименьшего ключа. Вывести значения узлов в порядке обхода снизу. | |
15 |
Построить бинарное дерево поиска. Включить в него узел с ключей 25. Подсчитать сумму узлов, являющихся листьями. Вывести значения узлов в порядке обхода слева. |
|
16 |
Построить бинарное дерево поиска. Исключить из него узел с ключом 10. Определить высоту дерева. Вывести значения узлов в порядке обхода слева. | |
17 |
Построить бинарное дерево поиска. Удалить все узлы, имеющие значения ключей меньше 33. Вывести значения узлов в порядке обхода снизу. | |
18 |
Построить бинарное дерево поиска. Подсчитать среднее арифметическое значение узлов правого поддерева. Вывести значения узлов в порядке обхода сверху. | |
19 |
Построить бинарное дерево поиска. Определить среднее для наибольшего и наименьшего значений ключей. Вывести значения узлов в порядке обхода слева. | |
20 |
Построить бинарное дерево поиска. Подсчитать процент узлов, являющихся листьями. Вывести значения узлов в порядке обхода сверху. | |
21 |
Построить бинарное дерево поиска. Определить высоту правого поддерева. Вывести значения узлов в порядке обхода слева. | |
22 |
Построить бинарное дерево поиска. Удалить все узлы, имеющие значения ключей больше 50. Вывести значения узлов в порядке обхода слева. | |
23 |
Построить бинарное дерево поиска. Подсчитать количество узлов ветвления имеющих двух потомков. Вывести значения узлов в порядке обхода сверху. | |
24 |
Построить бинарное дерево поиска. Подсчитать среднее арифметическое значение узлов левого поддерева. Вывести значения узлов в порядке обхода снизу. | |
25 |
Построить бинарное дерево поиска. Определить высоту левого поддерева. Вывести значения узлов в порядке обхода сверху. |
Содержание отчета
Номер и тема лабораторной работы.
Вариант задания.
Текст программы.
Итоги работы программы.
Контрольные вопросы
Понятие дерева.
Операции над бинарными деревьями.
Схемы обхода.
Прошивки деревьев.
Представление бинарного дерева в памяти ЭВМ.