Двоичное дерево поиска Python: найдите k- й наименьший элемент в заданном бинарном дереве поиска (BST)
Дерево бинарного поиска 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.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code