我正在阅读这种二叉搜索树插入的简单方法,以下是解决方案:
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
def insert(self, data):
if self.data:
if data < self.data:
if self.left is None:
self.left = Node(data)
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = Node(data)
else:
self.right.insert(data)
else:
self.data = data
def PrintTree(self):
if self.left:
self.left.PrintTree()
print(self.data),
if self.right:
self.right.PrintTree()
if __name__ == "__main__":
root = Node(12)
root.insert(6)
root.insert(14)
root.insert(3)
root.PrintTree()
但我仍然想知道他们通过变量调用函数的以下几行:
self.left.insert(data)
然后 :
self.right.insert(data)
和 :
self.left.PrintTree()
这个叫什么 ?我需要回顾一下。
从insert(self, data)
方法的内容中可以看出,right
和left
实例属性旨在保存 type 的对象Node
,它们是对节点的两个子节点的引用self
。您引用的行调用了这个类中定义的方法,但不是在self
实例上调用它们,而是在子节点上调用它们,因此它们将使用不同的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句