Это код, найденный в Википедии относительно BST:
# 'node' refers to the parent-node in this case
def search_binary_tree(node, key):
if node is None:
return None # key not found
if key < node.key:
return search_binary_tree(node.leftChild, key)
elif key > node.key:
return search_binary_tree(node.rightChild, key)
else: # key is equal to node key
return node.value # found key
Вот двоичное дерево :
10
5 12
3 8 9 14
4 11
Если я ищу 11 и следую алгоритму наверху, я начинаю с 10, иду вправо до 12, а затем влево до 9. И я дохожу до конца дерева, не находя 11. Но 11 существует в моем дереве, это просто с другой стороны.
Не могли бы вы объяснить, какие ограничения в двоичном дереве для этого алгоритма, чтобы работать на моем дереве?
Спасибо.