Дерево бинарного поиска Python: найдите ближайшее значение цели в заданном непустом дереве двоичного поиска (BST) с уникальными значениями
Дерево бинарного поиска Python: упражнение-2 с решением
Напишите программу на Python, чтобы найти ближайшее значение заданного целевого значения в заданном непустом дереве двоичного поиска (BST) с уникальными значениями.
Пример решения :
Код Python:
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def closest_value(root, target):
a = root.val
kid = root.left if target < a else root.right
if not kid:
return a
b = closest_value(kid, target)
return min((a,b), key=lambda x: abs(target-x))
root = TreeNode(8)
root.left = TreeNode(5)
root.right = TreeNode(14)
root.left.left = TreeNode(4)
root.left.right = TreeNode(6)
root.left.right.left = TreeNode(8)
root.left.right.right = TreeNode(7)
root.right.right = TreeNode(24)
root.right.right.left = TreeNode(22)
result = closest_value(root, 19)
print(result)
Пример вывода:
22
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Python для создания сбалансированного дерева двоичного поиска (BST) с использованием элементов массива (заданных), где элементы массива сортируются в порядке возрастания.
Далее: Напишите программу на Python, чтобы проверить, является ли данное двоичное дерево действительным двоичным деревом поиска (BST) или нет.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования