Node オブジェクトを作成して、Python で一般的なツリーを作成しました。各ノードは、0、1、または 2 つのツリーを持つことができます。
ツリー内のすべてのノードのリストを出力するメソッドを作成しようとしています。リストは順番通りである必要はありません。これが私の単純な試みです:
def allChildren(self, l = list()):
l.append(self)
for child in self.children:
l = child.allChildren(l)
return l
このメソッドを初めて実行すると、正しく機能します。ただし、何らかの理由で以前の実行が保存されています。メソッドを 2 回目に実行すると、すべてのノードが 2 回出力されます。2 つの別個のツリーを作成しても、以前の実行は記憶されています。例: a と b の 2 つのツリーを作成します。a.allChildren() を実行すると、正しい結果が得られます。次に、b.allChildren() を実行し、a のすべてのノードと b のすべてのノードを受け取ります。