Деревья двоичного поиска

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

Не могли бы вы объяснить, какие ограничения в двоичном дереве для этого алгоритма, чтобы работать на моем дереве?

Спасибо.

5
задан bragboy 7 September 2010 в 12:10
поделиться