кодесурса
«Python

Дерево двоичного поиска Python: преобразование массива в дерево двоичного поиска (BST)

script1adsense2code
script1adsense3code

Дерево бинарного поиска Python: упражнение 5 с решением

Напишите программу на Python для преобразования заданных элементов массива в сбалансированное по высоте дерево двоичного поиска (BST).

Примечание. Найдите узел для удаления. Если узел найден, удалите узел.

Пример решения :

Код Python:

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
def array_to_bst(array_nums):
    if not array_nums:
        return None
    mid_num = len(array_nums)//2
    node = TreeNode(array_nums[mid_num])
    node.left = array_to_bst(array_nums[:mid_num])
    node.right = array_to_bst(array_nums[mid_num+1:])
    return node
def preOrder(node): 
    if not node: 
        return      
    print(node.val)
    preOrder(node.left) 
    preOrder(node.right)   
array_nums = [1,2,3,4,5,6,7]
print("Original array:")
print(array_nums)
result = array_to_bst(array_nums)
print("\nArray to to a height balanced BST:")
print(preOrder(result))

Пример вывода:

 Исходный массив:
[1, 2, 3, 4, 5, 6, 7]
Массив для выравнивания по высоте BST:
4
2
1
3
6
5
7
Никто

Блок - схема:

«Блок-схема:

Редактор кода Python:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Python для удаления узла с данным ключом в заданном дереве двоичного поиска (BST).
Далее: Напишите программу на Python, чтобы найти k- й наименьший элемент в заданном бинарном дереве поиска.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code