【问题标题】:Recursively Adding Nodes to zss Tree递归地将节点添加到 zss 树
【发布时间】:2019-02-26 03:34:44
【问题描述】:

我想使用 zss 模块比较树的距离。为此,我试图通过递归添加节点来创建树。不幸的是,文档只提供了一次创建包含所有节点的树的示例,我无法理解如何导航到子节点以便在创建树对象后添加另一个节点。

这是一个简单的例子:

from zss import Node
A = (
    Node("f")
        .addkid(Node("a")
            .addkid(Node("h"))
            .addkid(Node("c")))
        .addkid(Node("e"))
    )

B = (
    Node("f")
        .addkid(Node("a")
            .addkid(Node("h"))
            .addkid(Node("c")
                .addkid(Node("l"))))
        .addkid(Node("e"))
    )

我现在要做的就是将子“l”添加到树 A 中的节点“c”,这样 A == B。感谢任何帮助。

【问题讨论】:

  • 我假设您的意思是以编程方式将“l”添加到树 A 中的“c”节点,而不是简单地静态添加?

标签: python tree


【解决方案1】:

查看zss 后,我发现这可能适用于它使用的simple_tree

A.get('c').addkid(Node('l'))

似乎使用了可能应该是唯一的标签。因此,get 实际上返回在深度优先搜索期间找到的具有该标签的第一个节点。

A.get('f').get('a').get('c').addkid(Node('l'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    相关资源
    最近更新 更多