所以我使用二叉树类来构建树 我正在制作简单的树,但无法弄清楚为什么我会一直收到错误
class BinaryTree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def insert_left(self, new_data):
if self.left == None:
self.left = BinaryTree(new_data)
else:
t = BinaryTree(new_data)
t.left = self.left
self.left = t
def insert_right(self, new_data):
if self.right == None:
self.right = BinaryTree(new_data)
else:
t = BinaryTree(new_data)
t.right = self.right
self.right = t
def get_left(self):
return self.left
def get_right(self):
return self.right
def set_data(self, data):
self.data = data
def get_data(self):
return self.data
我已经尝试过了
def create_a_tree():
tree=BinaryTree('a')
tree.insert_left('b')
tree.insert_right('c')
return(tree)
但这不起作用
答案 0 :(得分:0)
有些事情似乎与您的代码略有不同。
有一件事是代码似乎没有正确缩进。缩进在Python中具有语法和语义值,因此如果您希望您的方法在 in 类中,则必须缩进,如
class BinaryTree:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
我可以看到的第二件事是您使用None
检查==
,而正确的方法是if x is None
(请参阅here和{ {3}}了解详情。
作为旁注:与Java不同,Python并不真正需要getter和setter,因为类和大多数对象都可以在运行时进行修改。因此,您只需在set_data
对象上设置bt.data=your_data
,而不是声明BinaryTree
之类的方法。