Перейти к содержанию

Лабораторная работа №3: Построение бинарного дерева

Цель работы

Изучение принципов рекурсии и способов программного построения иерархических структур данных.

Задание

Реализовать генерацию бинарного дерева заданной высоты в виде вложенного словаря. Значения в узлах вычисляются по правилу: левая ветвь — root + root/2, правая ветвь — root^2.

Реализация

def bin_tree(root, current_height, height) -> dict:
    if current_height == height:
        return {str(root): []}

    left_tree = bin_tree(root + root/2, current_height + 1, height)
    right_tree = bin_tree(root**2, current_height + 1, height)

    return {str(root): [left_tree, right_tree]}

Вывод

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