递归将节点添加到zss树

时间:2018-09-21 17:32:29

标签: python tree

我想使用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。我们将提供任何帮助。

1 个答案:

答案 0 :(得分:1)

查看zss后,我发现它可能与它使用的simple_tree一起工作:

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

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

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