Skip to content

Klivan49/Binary-Trees

Repository files navigation

Проект: Работа с бинарным деревом

📋 Описание

Этот проект представляет собой консольное приложение на C++, позволяющее создавать и управлять бинарным деревом поиска (BST). Пользователь может добавлять и удалять элементы, выполнять балансировку дерева, находить максимальную сумму пути, второй минимальный элемент, а также выполнять модификации над листьями дерева.

🔧 Функциональность

Программа поддерживает следующие функции:

  1. Добавление элементов (вручную или случайным образом)
  2. Расчёт максимальной суммы пути (от корня к листу)
  3. Удаление элемента
  4. Вывод дерева в виде древовидной структуры
  5. Обход дерева в симметричном порядке (in-order)
  6. Балансировка дерева
  7. Поиск второго минимального элемента
  8. Модификация дерева: прибавление 1 к листьям и вычитание 1 из остальных узлов
  9. Выход из программы

📁 Структура проекта

Проект состоит из трёх файлов:

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 и др.) ⚠️ Программа работает только в Windows-среде из-за использования Windows.h и SetConsoleOutputCP.

Балансировка выполняется путём сбора всех значений в массив, сортировки, и построения нового сбалансированного дерева. Работа с деревом реализована через структуру struct tree.

🧑‍💻 Автор: Klivan

Код написан в учебных целях в рамках лабораторной работы по программированию.

About

Console app that draws binary trees

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages