如果用户在Python二叉树中输入了错误的搜索数据,则返回错误
我试图将用户输入数据附加到现有树中,但我的代码似乎不起作用,因为当我再次搜索新数据时(我删掉了该部分),它丢失了。我真的是个新手,有人能帮我吗如果用户在Python二叉树中输入了错误的搜索数据,则返回错误,python,Python,我试图将用户输入数据附加到现有树中,但我的代码似乎不起作用,因为当我再次搜索新数据时(我删掉了该部分),它丢失了。我真的是个新手,有人能帮我吗 class BinTreeNode(object): def __init__(self, value, value2): self.value=value self.value2=value2 self.left=None self.right=None def tree_
class BinTreeNode(object):
def __init__(self, value, value2):
self.value=value
self.value2=value2
self.left=None
self.right=None
def tree_insert( tree, item,value):
if tree==None:
tree=BinTreeNode(item, value)
else:
if(item < tree.value):
if(tree.left==None):
tree.left=BinTreeNode(item,value)
else:
return tree_insert(tree.left,item, value)
else:
if(tree.right==None):
tree.right=BinTreeNode(item,value)
else:
return tree_insert(tree.right,item,value)
return tree
def search(value,p):
if p is None:
return 1
elif(p.val == value):
print("You bought item no:",p.value,", the description", p.value2 )
else:
if(p.val !=None):
if(p.val < value):
return search (value,p.right)
if(p.val > value):
return search (value,p.left)
t=tree_insert(None,13,3)
tree_insert(t,10,3)
tree_insert(t,5,3)
tree_insert(t,2,3)
option = int(input("Please enter code:"))
answer = search(option,tree)
while (answer == 1):
print("You've entered a wrong option")
option = int(input("Please enter code:"))
answer = search(option,tree)
类BinTreeNode(对象):
定义初始值(自身、值、值2):
自我价值=价值
self.value2=value2
self.left=无
self.right=无
def tree_insert(树、项、值):
如果树==无:
tree=BinTreeNode(项,值)
其他:
如果(项目<树值):
如果(tree.left==无):
tree.left=BinTreeNode(项,值)
其他:
返回树\插入(树、左、项、值)
其他:
如果(tree.right==无):
tree.right=BinTreeNode(项,值)
其他:
返回树\插入(树、右、项、值)
回归树
def搜索(值,p):
如果p为无:
返回1
elif(p.val==值):
打印(“您购买的商品编号:”,p.value,”,说明,”,p.value2)
其他:
如果(p.val!=无):
如果(p.val<值):
返回搜索(值,右页)
如果(p.val>值):
返回搜索(值,p.left)
t=树插入(无,13,3)
树_插入(t,10,3)
树_插入(t,5,3)
树插入(t,2,3)
选项=int(输入(“请输入代码:”)
答案=搜索(选项,树)
而(答案=1):
打印(“您输入了错误的选项”)
选项=int(输入(“请输入代码:”)
答案=搜索(选项,树)
请修复缩进。很难看出什么是你班里的东西,什么是外面的。当我猜测并尝试运行代码时,行answer=search(option,tree)
失败,因为未定义tree
。二叉树通常每个节点只有一个值。我不知道你为什么有两个。此外,您还任意将它们混合在一起,例如,if(item
。