Дерево двоичного поиска Python: создание сбалансированного дерева двоичного поиска (BST) с использованием отсортированного массива
Дерево бинарного поиска Python: упражнение-1 с решением
Напишите программу на Python для создания сбалансированного дерева двоичного поиска (BST) с использованием элементов массива (заданных), где элементы массива сортируются в порядке возрастания.
Иллюстрированная презентация:
Пример решения :
Код Python:
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def sorted_array_to_bst(nums):
if not nums:
return None
mid_val = len(nums)//2
node = TreeNode(nums[mid_val])
node.left = sorted_array_to_bst(nums[:mid_val])
node.right = sorted_array_to_bst(nums[mid_val+1:])
return node
def preOrder(node):
if not node:
return
print(node.val)
preOrder(node.left)
preOrder(node.right)
result = sorted_array_to_bst([1, 2, 3, 4, 5, 6, 7])
preOrder(result)
Пример вывода:
4 2 1 3 6 5 7
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Binary Tree Home.
Далее: Напишите программу на Python для перебора класса enum и отображения отдельного члена и его значения.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code