這是關於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存在於我的樹中,它只存在於另一側。
你能解釋一下二叉樹中這個算法在我的樹上工作的限制嗎?
謝謝。
非常感謝PerrOz。這解釋了我沒有得到關於BST的部分:) – Martin 2010-09-07 05:44:18