Это некоторый код, найденный в Википедии относительно 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, это просто на другой стороне.
Не могли бы вы объяснить, каковы ограничения в двоичном дереве для этого алгоритма, чтобы работать на моем дереве?
Спасибо.