Python中的N叉树
我想创建一个N叉树,每个节点都包含一个键(名字)和一个值。
树的顶部有一个根节点,然后是N个子节点,每个子节点都有两个字段:名字和关联的值。
而且每个子节点还可以有N个子节点,每个子节点同样有这两个字段。
我希望能用更简单的方法来实现,不想使用类,只想用字典和列表(如果可能的话??)。
class Node():
#Do something
# ....
2 个回答
0
如果你坚持不想使用类的话:
def create_node(name, value):
return {
'name': name,
'value': value,
'children': []
}
def add_child(node, obj):
node['children'].append(obj)
########################################
node = create_node('foo', 0)
add_child(node, create_node('bar', 1))
print(node)
# Result: {'name': 'foo', 'value': 0, 'children': [{'name': 'bar', 'value': 1, 'children': []}]}
10
class Node(object):
def __init__(self, name, value):
self.name = name
self.value = value
self.children = []
def add_child(self, obj):
self.children.append(obj)
你说你在寻找一种“更简单的方法,不用类”,但我想说的是,十有八九情况下,使用类来解决这个问题反而会更简单。