我试图编写一个代码,如果值存在于二叉树中,那么输出将返回True或False
以下是我的尝试:
定义名为Node的类:
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
定义名为BinaryTree+查找函数的类:
class BinaryTree:
def __init__(self, rootdata):
self.root = Node(rootdata)
def LOOKUP(self, lookupval):
if lookupval < self.data:
if (self.left == None):
self.left.LOOKUP(lookupval)
return False
elif lookupval > self.data:
if (self.right == None):
self.right.LOOKUP(lookupval)
return False
else:
return True
其余,将值输入二叉树:
Tree = BinaryTree(24)
Tree.root.left = Node(11)
Tree.root.left.left = Node(199)
Tree.root.left.right = Node(167)
Tree.root.right = Node(2)
Tree.root.right.right = Node(8)
print(Tree.LOOKUP(11))
print(Tree.LOOKUP(13))
但是,我不断得到错误'BinaryTree' object has no attribute 'data'
我知道函数查找的定义会有一些错误, 但我是否有可能保留此格式并仍然返回输出:
True
False
谢谢,
代码中的问题包括:
self.right
(应该是self.root.right
,因为我们不在Node
实例上)这样做:
输出:
相关问题 更多 >
编程相关推荐