Skip to content

KriFinnSher/Graph_lr3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Удаление самых далеких листьев в N-дереве

Описание

Данное приложение реализует работу с N-деревом, позволяя пользователю удалять самые далекие от корня листья. Программа написана на языке C++ и использует стандартные библиотеки для работы с вводом-выводом, временем и векторами.

Основные возможности

  • Создание N-дерева произвольного размера или по заданному шаблону.
  • Удаление самых далеких от корня листьев.
  • Вывод дерева на экран до и после удаления листьев.
  • Измерение времени работы алгоритма удаления.

Структура кода

Структуры данных

  • Node: Структура для представления узла дерева, содержащая:
    • depth: Глубина узла.
    • val: Значение узла.
    • parent: Указатель на родительский узел.
    • childs: Вектор указателей на дочерние узлы.

Основные функции

  • add_node(int val, Node& parent, int arity)*: Добавляет новый узел к дереву.
  • tree_height(Node& root)*: Вычисляет высоту дерева.
  • depth_of_node(Node& node)*: Вычисляет глубину узла.
  • set_all_depths(Node& root)*: Устанавливает глубину для всех узлов дерева.
  • delete_distant_leafs(Node& root, int max_height)*: Удаляет листья на максимальной глубине.
  • print_tree(Node root, int current_depth = 0)*: Выводит дерево в консоль.
  • clear_tree(Node& root)*: Освобождает память, занятую деревом.
  • create_custom_tree(std::ifstream& tree_file, int arity): Создает дерево по заданному шаблону.
  • assign_parent_pointers(Node root)*: Устанавливает указатели на родительские узлы для всех узлов дерева.
  • generate_file(const std::string& filename, int count): Генерирует файл с случайными значениями узлов.

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages