Бинарное дерево — это структура данных, в которой каждый узел имеет до двух дочерних. Дочерние узлы называются левым и правым. Бинарное дерево может использоваться для хранения упорядоченного набора данных, таких как числа или строки. Для реализации бинарного дерева в Python сначала определяем класс узла, который будет содержать значение элемента и ссылки на левого и правого потомков: class Node:
def __init__(self, value):
self.value = value
self.left_child = None
self.right_child = None Далее определим класс дерева, который будет содержать корневой узел и методы для добавления и поиска элементов: class BinaryTree:
def __init__(self):
self.root = None
def __repr__(self):
return f"<BinaryTree object root={self.root}>"
def add_node(self, value):
if self.root is None:
self.root = Node(value)
else:
self._add_node(value, self.root)
def _add_node(self, value, node):
if value < node.value: