Python中的N叉树

3 投票
2 回答
13655 浏览
提问于 2025-04-18 03:15

我想创建一个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)

你说你在寻找一种“更简单的方法,不用类”,但我想说的是,十有八九情况下,使用类来解决这个问题反而会更简单。

撰写回答