Скачиваний:
65
Добавлен:
17.03.2015
Размер:
43.52 Кб
Скачать

Лабораторная работа №4

Бинарные деревья.

Цель работы: изучение принципов организации и обработки бинарных деревьев.

Постановка задачи.

Выполнить задание в соответствии с вариантом. Для решения поставленной задачи разработать и использовать шаблон класса «Бинарное дерево поиска».

Для оценки «удовлетворительно».

Шаблон класса «Бинарное дерево поиска» должен включать в себя необходимый минимум методов, обеспечивающий полноценное функционирование объектов указанного класса, а именно:

  • конструктор по умолчанию;

  • конструктор копирования;

  • деструктор;

  • добавление узла;

  • удаление узла;

  • поиск узла с заданным значением ключа;

Используя механизм перегрузки стандартных операций, реализовать:

  • вывод дерева на экран в удобном для восприятия человеком виде;

  • ввод данных в дерево с клавиатуры;

  • сравнение двух деревьев;

  • присваивание данных одного дерева другому дереву.

Для оценки «хорошо».

Дополнить разработанный класс следующими функциональными возможностями:

  • прямой обход дерева (корень, левое поддерево, правое поддерево);

  • обратный обход дерева (левое поддерево, корень, правое поддерево);

  • концевой обход дерева (левое поддерево, правое поддерево, корень).

  • вывод дерева в файл в удобном для восприятия человеком виде;

  • ввод данных в дерево из файла;

Для оценки «отлично».

На базе разработанного класса «Бинарное дерево поиска», реализовать производный класс «Сбалансированное бинарное дерево», добавив показатель балансировки для узлов дерева и метод, выполняющий при необходимости повторную балансировку дерева.

Варианты заданий.

Вариант №1.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Определить уровень узла с минимальным элементом.

Вариант №2.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Вывести на экран значения в узлах, лежащих на пути от корня до узла с максимальным элементом.

Вариант №3.

Из входной последовательности целых чисел построить бинарное дерево поиска. Определить уровень узла, содержащего число с минимальной суммой цифр.

Вариант №4.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Вывести на экран значения в тех узлах, которые лежат на одном уровне с элементом, заданным пользователем.

Вариант №5.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Вывести на экран значения в тех узлах, которые имеют уровень, заданный пользователем.

Вариант №6.

Из входной последовательности целых чисел построить бинарное дерево поиска. Вывести на экран значения всех листьев дерева.

Вариант №7.

Из входной последовательности вещественных чисел построить бинарное дерево поиска и определить его глубину.

Вариант №8.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Определить среднее арифметическое значений в тех узлах, которые имеют заданный пользователем уровень.

Вариант №9.

Из входной последовательности целых чисел построить бинарное дерево поиска. Определить сумму значений тех листьев дерева, которые являются простыми числами.

Вариант №10.

Из входной последовательности целых чисел построить бинарное дерево поиска. Вывести на экран те значения в узлах дерева, которые являются палиндромами, а также номер уровня для каждого такого узла.

Вариант №11.

Из входной последовательности целых чисел построить бинарное дерево поиска. Вычислить среднее арифметическое значений в тех узлах, которые лежат на пути от корня до узла с минимальным элементом.

Вариант №12.

Из входной последовательности чисел построить бинарное дерево поиска. Для каждого уровня вывести на экран значения находящихся на этом уровне узлов слева направо.

Вариант №13.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Вычислить среднее арифметическое всех узлов дерева. Вывести на экран те значения в узлах дерева, которые больше среднего арифметического, а также номер уровня для каждого такого узла.

Вариант №14.

Из входной последовательности целых чисел построить бинарное дерево поиска. Вывести на экран те значения в узлах дерева, которые являются простыми числами, а также номер уровня для каждого такого узла.

Вариант №15.

Из входной последовательности целых чисел построить бинарное дерево поиска. Определить сумму цифр в значениях тех узлов, которые лежат на пути от корня до максимального элемента.

Вариант №16.

Из двух входных последовательностей вещественных чисел построить два бинарных дерева поиска. Написать функцию, которая сравнивает суммы элементов построенных деревьев и возвращает 0, если они равны, и 1 в противном случае.

Вариант №17.

Из двух входных последовательностей символов построить два бинарных дерева поиска. Написать функцию, которая сравнивает глубину построенных деревьев и возвращает 0, если они равны, и 1 в противном случае.

Вариант №18.

Из двух входных последовательностей символов построить два бинарных дерева поиска. Написать функцию, которая сравнивает построенные деревья и возвращает 0, если они равны, и 1 в противном случае.

Вариант №19.

Из двух входных последовательностей вещественных чисел построить два бинарных дерева поиска. Написать функцию, которая сравнивает максимальные элементы построенных деревьев и возвращает 0, если они равны, и 1 в противном случае.

Вариант №20.

Из двух входных последовательностей вещественных чисел построить два бинарных дерева поиска. Написать функцию, которая сравнивает количество узлов в построенных деревьях и возвращает 0, если они равны, и 1 в противном случае.

Вариант №21.

Из входной последовательности целых чисел построить бинарное дерево поиска. Определить среднее арифметическое элементов самой длинной ветви. Если таких ветвей несколько, то взять для рассмотрения самую левую ветвь.

Вариант №22.

Из входной последовательности целых чисел построить бинарное дерево поиска. Определить среднее арифметическое элементов самой короткой ветви. Если таких ветвей несколько, то взять для рассмотрения самую правую ветвь.

Вариант №23.

Из входной последовательности вещественных чисел построить бинарное дерево поиска. Удалить из дерева все листья.

Вариант №24.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Удалить из дерева узлы, содержащие самые длинные слова.

Вариант №25.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Путем обработки дерева определить, какое из слов чаще всего встречается в тексте.

Вариант №26.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Удалить из дерева те узлы, где длина слов превосходит значение, заданное пользователем.

Вариант №27.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Удалить из дерева узлы, содержащие слово, заданное пользователем.

Вариант №28.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Вывести на экран все слова в алфавитном порядке, указывая для каждого слова частоту его встречаемости в тексте.

Вариант №29.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Определить самое длинное из слов, содержащихся на заданном уровне дерева.

Вариант №30.

Из слов входного файла, содержащего произвольный текст, построить бинарное дерево поиска. Вывести на экран слова, содержащиеся в листьях дерева, в порядке убывания их длины.

Соседние файлы в папке Лабораторная работа4 Деревья