кодесурса
«Python

Двоичное дерево поиска Python: найдите k- й наименьший элемент в заданном бинарном дереве поиска (BST)

script1adsense2code
script1adsense3code

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

Напишите программу на Python, чтобы найти k- й наименьший элемент в заданном бинарном дереве поиска.

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

Код Python:

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None
def kth_smallest(root, k):
    stack = []
    while root or stack:
        while root:
            stack.append(root)
            root = root.left
        root = stack.pop()
        k -= 1
        if k == 0:
            break
        root = root.right
    return root.val
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)  
print(kth_smallest(root, 2))
print(kth_smallest(root, 3))

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

 5
8

Блок - схема:

«Блок-схема: наименьший элемент в заданном бинарном дереве поиска. "style =" max-width: 100%; display: block; height: auto; граница: 2px solid silver; ">

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

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

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

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

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


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code