Я пытаюсь реализовать итеративную функцию, которая ищет заданное дерево поиска для целого числа и сообщает, существует ли это целое число в дереве поиска. До сих пор он работает для возврата True, если значение существует, но при поиске значений, не существующих в дереве поиска, возникает ошибка «Список индексов вне диапазона».
return [l,v,r]
def left(l) :
return l[0]
def right(l) :
return l[2]
def value(l) :
return l[1]
def empty() :
return []
def iterative_check_for_elem(val,tree):
while not tree == False:
if val == value(tree):
return True
break
elif val < value(tree):
tree = left(tree)
elif val > value(tree):
tree = right(tree)
return False
test_tree = node(node(node(empty(),30,empty()),40,node(empty(),45,empty())),50,node(node(empty(),55,empty()),60,node(empty(),70,empty())))
print(iterative_check_for_elem(45,test_tree))
45 работает в вызове чтобы напечатать, 47 сталкивается с ошибкой. Я не могу понять, что происходит честно.