Лог c кода, кажется, прекрасно, но у меня есть одна проблема. В этом коде это возвращает что-нибудь?
class BinaryTreeNode:
def __init__(self,key):
self.key=key
self.left=None
self.right=None
def insert(root,data):
if root is None:
root=BinaryTreeNode(data)
else:
if data>root.key:
insert(root.right,data)
else:
insert(root.left,data)
return
Я добавил возврат в ваш метод вставки, возможно, он сможет работать сейчас. Из-за пропущенного возврата ваш метод будет продолжайте вызывать себя, но если он не вернется, стек не закроется, в результате чего ваша программа застрянет навсегда.
У меня также есть метод вставки, возможно, вы могли бы просмотреть и проверить, пропустили ли вы где-то.
def insert(self, val):
treeNode = Node(val)
placed = 0
tmp = self.root
if not self.root:
self.root = treeNode
else:
while(not placed):
if val<tmp.info:
if not tmp.left:
tmp.left = treeNode
placed = 1
else:
tmp = tmp.left
else:
if not tmp.right:
tmp.right = treeNode
placed = 1
else:
tmp = tmp.right
return