これは、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 は私のツリーに存在します。 、それはちょうど反対側にあります。
このアルゴリズムが私のツリーで機能するためのバイナリ ツリーの制限を説明していただけますか?
ありがとう。