Ответ:
Python:
# Класс узла
class Node:
# Конструктор класса
def __init__(self, value):
# Значение узла
self.value = value
# Левый потомок
self.left = None
# Правый потомок
self.right = None
# Функция для вставки узла в дерево
def insert(node, value):
# Если узел не существует, создаем новый
if node is None:
return Node(value)
# Если значение узла больше или равно вставляемому значению, вставляем узел в левого потомка
if node.value >= value:
node.left = insert(node.left, value)
# Иначе вставляем узел в правого потомка
else:
node.right = insert(node.right, value)
return node
# Функция для создания двоичного дерева
def build_binary_tree(arr):
# Корень дерева
root = None
# Перебираем все элементы массива
for value in arr:
# Добавляем элементы в дерево
root = insert(root, value)
return root
# Массив элементов
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..., 100]
# Создаем дерево
tree = build_binary_tree(array)
def __init__(self, data):
self.data = data
class BinaryTree:
self.root = Node(data)
def insert(self, data):
if self.root is None:
self._insert(data, self.root)
def _insert(self, data, node):
return Node(data)
if data < node.data:
node.left = self._insert(data, node.left)
node.right = self._insert(data, node.right)
Можно добавить элементы в дерево, вызывая Insert:
tree = BinaryTree(50)
tree.insert(30)
tree.insert(20)
tree.insert(40)
tree.insert(70)
tree.insert(60)
tree.insert(80)
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Ответ:
Python:
# Класс узла
class Node:
# Конструктор класса
def __init__(self, value):
# Значение узла
self.value = value
# Левый потомок
self.left = None
# Правый потомок
self.right = None
# Функция для вставки узла в дерево
def insert(node, value):
# Если узел не существует, создаем новый
if node is None:
return Node(value)
# Если значение узла больше или равно вставляемому значению, вставляем узел в левого потомка
if node.value >= value:
node.left = insert(node.left, value)
# Иначе вставляем узел в правого потомка
else:
node.right = insert(node.right, value)
return node
# Функция для создания двоичного дерева
def build_binary_tree(arr):
# Корень дерева
root = None
# Перебираем все элементы массива
for value in arr:
# Добавляем элементы в дерево
root = insert(root, value)
return root
# Массив элементов
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..., 100]
# Создаем дерево
tree = build_binary_tree(array)
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
class BinaryTree:
def __init__(self, data):
self.root = Node(data)
def insert(self, data):
if self.root is None:
self.root = Node(data)
else:
self._insert(data, self.root)
def _insert(self, data, node):
if node is None:
return Node(data)
if data < node.data:
node.left = self._insert(data, node.left)
else:
node.right = self._insert(data, node.right)
return node
Можно добавить элементы в дерево, вызывая Insert:
tree = BinaryTree(50)
tree.insert(30)
tree.insert(20)
tree.insert(40)
tree.insert(70)
tree.insert(60)
tree.insert(80)