要按名称而不是值进行排序的树状图表,可以使用以下解决方法:
class Node:
def __init__(self, name, value):
self.name = name
self.value = value
self.children = []
def add_child(self, child):
self.children.append(child)
root = Node("Root", 10)
child1 = Node("Child 1", 5)
child2 = Node("Child 2", 8)
child3 = Node("Child 3", 3)
root.add_child(child1)
root.add_child(child2)
root.add_child(child3)
def print_tree(node):
print(node.name, node.value)
node.children.sort(key=lambda child: child.name) # 按名称排序
for child in node.children:
print_tree(child)
print_tree(root)
这样,树状图表将按节点名称的字母顺序打印出来。如果要按其他排序方式进行排序,只需修改key
参数中的排序函数即可。