""" recursive trees in class Nov 13 """ class TreeNode(object): """ A node in a tree """ def __init__(self, name=""): self.name = name self.kids = [] def __str__(self): result = "TreeNode(" + self.name for kid in self.kids: result += " " + str(kid) result += ")" return result def spawns(self, kid): # This name by popular demand. # Against my better judgement. self.kids.append(kid) def count_spawn(self): # Recursive tree counting ! # Name by popular demand. # (Lack of parens in previous ... # by popular demand.) count = 0 for kid in self.kids: count += 1 # for that kid count += kid.count_spawn() return count n = TreeNode('n') m = TreeNode('m') p = TreeNode('p') q = TreeNode('q') n.spawns(m) n.spawns(p) p.spawns(q) def main(): print n if __name__ == "__main__": main()