Đây là một số mã được tìm thấy trên wikipedia về BST:Binary Search Trees
# '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
Bây giờ đây là một cây nhị phân:
10
5 12
3 8 9 14
4 11
Nếu tôi đang tìm kiếm 11, và tôi làm theo các thuật toán lên đó , Tôi bắt đầu với 10, tôi đi ngay đến 12, và sau đó còn lại đến 9. Và tôi đạt đến cuối của cây mà không tìm thấy 11. Nhưng 11 tồn tại trong cây của tôi, nó chỉ ở phía bên kia.
Bạn có thể giải thích những hạn chế trong cây nhị phân để thuật toán này hoạt động trên cây của tôi không?
Cảm ơn.
Cảm ơn rất nhiều PerrOz. Điều đó giải thích phần tôi đã không nhận được về BSTs :) – Martin