Этот проект представляет собой консольное приложение на C++, позволяющее создавать и управлять бинарным деревом поиска (BST). Пользователь может добавлять и удалять элементы, выполнять балансировку дерева, находить максимальную сумму пути, второй минимальный элемент, а также выполнять модификации над листьями дерева.
Программа поддерживает следующие функции:
- Добавление элементов (вручную или случайным образом)
- Расчёт максимальной суммы пути (от корня к листу)
- Удаление элемента
- Вывод дерева в виде древовидной структуры
- Обход дерева в симметричном порядке (in-order)
- Балансировка дерева
- Поиск второго минимального элемента
- Модификация дерева: прибавление 1 к листьям и вычитание 1 из остальных узлов
- Выход из программы
Проект состоит из трёх файлов:
lab6.h — заголовочный файл с объявлениями структур и функций. lab6.1.cpp — основной файл с пользовательским интерфейсом и меню. lab6.2.cpp — реализация всех вспомогательных функций и логики работы с деревом.
Откройте проект в вашей IDE (например, Visual Studio). Убедитесь, что кодировка консоли установлена в UTF-8 для корректного отображения русского текста. Соберите проект. Запустите исполняемый файл.
Windows.h (для управления консолью)
conio.h (для работы с _getch)
C++ стандартные библиотеки (iostream, cstdlib, ctime, limits, string, cmath и др.)
Балансировка выполняется путём сбора всех значений в массив, сортировки, и построения нового сбалансированного дерева. Работа с деревом реализована через структуру struct tree.
Код написан в учебных целях в рамках лабораторной работы по программированию.