我正在处理树,其中每个节点都没有信息,但可以有任意数量的子节点。目前,我正在使用Python中的列表来表示它们。例如:
[]
是只有一个节点的树
[[][][]]
是一个树,顶部节点有三个孩子
[[][[][[][]]]]
是一个树,顶部节点有两个孩子,右边的孩子有两个孩子,右边的孩子有两个孩子。
你可以看到最后一棵树很难读。
有没有办法打印出这些更容易阅读的树? (我知道“更容易”是主观的,所以我很感激您认为可能“更容易”的任何建议。)
答案 0 :(得分:3)
tree = [[],[[],[[],[]]]]
def print_tree(tree, indent = ""):
if len(tree) > 0:
print indent + "["
for child in tree:
print_tree(child, indent + " ")
print indent + "]"
else:
print indent + "[]"
print_tree(tree)