这是在维基百科上找到的关于 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 存在于我的树中,它只是在另一边。
您能否解释一下二叉树中该算法在我的树上工作的限制是什么?
谢谢。