基本的に、タイプツリーの各ノードにデータフィールドとブランチのリストを持たせることができるようにしたいと思います。このリストには、Treeタイプのオブジェクトがいくつか含まれている必要があります。リストの実際の実装は下にあると思いますが、getLeavesメソッドを使用しようとすると奇妙な動作をします。基本的に、それは再帰的にそれ自体を呼び出し、決して戻りません、そして起こる方法はどういうわけかツリーの2番目のノードがそれ自身として設定された最初のブランチを取得することです(私は思います)。
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)