基本上我希望能够让树类型的每个节点都有一个数据字段和一个分支列表。此列表应包含许多 Tree 类型的对象。我想我已经完成了列表的实际实现,但是当我尝试使用 getLeaves 方法时会出现奇怪的行为。基本上它递归地调用自己并且永远不会返回,并且发生的方式是树的第二个节点以某种方式将它的第一个分支设置为自身(我认为)。
class Tree:
"""Basic tree graph datatype"""
branches = []
def __init__(self, root):
self.root = root
def addBranch (self, addition):
"""Adds another object of type Tree as a branch"""
self.branches += [addition]
def getLeaves (self):
"""returns the leaves of a given branch. For leaves of the tree, specify root"""
print (len(self.branches))
if (len(self.branches) == 0):
return self.root
else:
branchSum = []
for b in self.branches:
branchSum += b.getLeaves()
return (branchSum)