赤黒い木の上を歩き、さまざまなノード情報を ( list にstorage
) 保存するために使用している再帰的な方法があります。
def _walk (self, storage, func, starting_node) :
if starting_node is not self._nil :
self._walk(storage, func, starting_node.left)
storage.append(func(starting_node))
self._walk(storage, func, starting_node.right)
ただし、このメソッドを再実装して、ジェネレーターを構築したいと思います (私が理解していることから、これは時間とメモリの両方を節約するはずです)。それを行う「最良の」方法は何ですか?