如何构建一个二叉树,如果成功插入 return 在 python 中为真
How to build a binary tree that if inserted succefully return True in python
我创建了一个包含元组节点的二叉树。如果元组不在树中,我希望我的插入函数插入,如果插入则 return True。目前,它似乎正确地正确插入,但它没有正确地 returning bool 值。
class D_1_tuple_tree(): #binary Tree
def __init__(self,data=None):
self.left = None
self.right = None
self.data = data
def insert(self,data): #insert Function
if data==self.data:
return False
if self.data:
if isinstance(data,tuple): #if tuple of size > 1
tuple_lens=len(data)
for i in range(0,tuple_lens):
if data[i]!=self.data[i]:
if data[i]<self.data[i]:
if self.left is None:
self.left = D_1_tuple_tree(data)
return True
else:
self.left.insert(data)
elif data[i] > self.data[i]:
if self.right is None:
self.right = D_1_tuple_tree(data)
return True
else:
self.right.insert(data)
else: #tuple of size 1
if data!=self.data:
if data<self.data:
if self.left is None:
self.left = D_1_tuple_tree(data)
return True
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = D_1_tuple_tree(data)
return True
else:
self.right.insert(data)
else:
return False
else:
self.data=data
return True
有人知道我做错了什么吗?
谢谢!
您忘记了 return 您的递归结果,例如return self.left.insert(data)
.
我创建了一个包含元组节点的二叉树。如果元组不在树中,我希望我的插入函数插入,如果插入则 return True。目前,它似乎正确地正确插入,但它没有正确地 returning bool 值。
class D_1_tuple_tree(): #binary Tree
def __init__(self,data=None):
self.left = None
self.right = None
self.data = data
def insert(self,data): #insert Function
if data==self.data:
return False
if self.data:
if isinstance(data,tuple): #if tuple of size > 1
tuple_lens=len(data)
for i in range(0,tuple_lens):
if data[i]!=self.data[i]:
if data[i]<self.data[i]:
if self.left is None:
self.left = D_1_tuple_tree(data)
return True
else:
self.left.insert(data)
elif data[i] > self.data[i]:
if self.right is None:
self.right = D_1_tuple_tree(data)
return True
else:
self.right.insert(data)
else: #tuple of size 1
if data!=self.data:
if data<self.data:
if self.left is None:
self.left = D_1_tuple_tree(data)
return True
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = D_1_tuple_tree(data)
return True
else:
self.right.insert(data)
else:
return False
else:
self.data=data
return True
有人知道我做错了什么吗? 谢谢!
您忘记了 return 您的递归结果,例如return self.left.insert(data)
.