Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 семестр / samostoiatelnaia-rabota-21

.pdf
Скачиваний:
0
Добавлен:
16.11.2025
Размер:
332.48 Кб
Скачать
[a; b]

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ» Кафедра информатики и процессов управления (№17)

Дисциплина «Информатика» (основной уровень), 2-й курс, 3-й семестр.

Задание для самостоятельной работы 21

Тема 21: Древовидные структуры данных.

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

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

­Удаление из дерева заданного значения. Функция принимает в качестве аргументов указатель на корень дерева и значение, которое необходимо удалить. Если узел с удаляемым значением не обнаружен, то функция

возвращает соответствующий код ошибки.

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

­создать двоичное дерево поиска из значений, вводимых пользователем;

­вывести дерево на экран (в порядке обхода, указанном в задании для лабораторной работы);

­удалить узел со значением, введенным пользователем;

­вывести измененное дерево на экран (в том же порядке обхода);

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

На основе двух реализованных функций составить третью функцию, которая удаляет из дерева все узлы, у которых значения ключей находятся в интервале (числа a, b задает пользователь).

Автоматическая проверка решений

Для автоматической проверки решения необходимо, чтобы программа выполняла ввод и вывод следующим образом.

Ввод. Пользователь на стандартной консоли водит значения в следующем порядке (в конце строки нажимает клавишу «Enter»):

42̺7̺23̺19̺5̺80̺74̺6̺n

7

Обозначения непечатных символов:

Литера n – признак окончания ввода элементов.

Элементы, последовательно добавляемые в дерево.

Удаляемое значение.

̺ – пробел, – новая строка.

Вывод. Программа выводит элементы списка и результат на стандартную консоль по следующему шаблону:

̺42̺̺7̺̺5̺̺6̺23̺19̺80̺74

Дерево, выведенное в

указанном порядке.

 

̺42̺19̺̺5̺̺6̺23̺80̺74

Дерево после удаления узла,

103

выведенное в том же порядке.

Сумма указанных узлов дерева.

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

Сумма указанных узлов дерева выводится в отдельной строке. В конце – переход на новую строку.

Если узел с удаляемым значением в дереве не обнаружен, то вывести сообщение в виде символа «!» в следующем формате:

̺42̺̺7̺̺5̺̺6̺23̺19̺80̺74

!

̺42̺̺7̺̺5̺̺6̺23̺19̺80̺74

99

Дерево, выведенное в указанном порядке.

Узел не найден.

Дерево, выведенное в том же порядке.

Сумма указанных узлов дерева.

Автоматическая проверка выполняется посимвольно.

Соседние файлы в папке 3 семестр