【问题标题】:Creating a tree in python given nodes and their positions在给定节点及其位置的python中创建树
【发布时间】:2012-07-17 03:35:37
【问题描述】:

我有一个 XML 文件,其中包含我随机生成的不同数据节点。我想要做的是遍历每个节点并从中创建一棵树。我的定制软件使用 XML 数据直观地绘制这些节点及其连接。

对于哪个节点连接到哪个节点没有标准;给定 500 个节点,我希望能够生成具有相当复杂的广度和深度的树。

我使用自定义库在 python 中对此进行编码,该库使用 JgraphX 绘制图表,因此我没有必要展示确切的代码。但假设我有以下 3 个功能:

getXY_coord(a), get the XY coord of the node on the diagram
connectNodes(a,b), connects node a with b
getAllNodes(), returns list of all nodes on diagram

我将如何制作这棵复杂的树?它甚至不必在视觉上进行组织,一个节点可以连接到图表另一侧的另一个节点,只要连接本身很复杂。

我唯一能做的就是随机化节点列表并连接列表中相邻的节点。然而,这并没有得到我想要的。

【问题讨论】:

  • 你说的是树还是有向图(甚至可能是无向图)?在结构和您可以使用的算法方面存在巨大差异。您能否解释一下,为什么您的解决方案不完全符合您的预期?可能会向我们展示想要的结果的图片。

标签: python tree


【解决方案1】:

我建议查看最小生成树算法,例如 Prim's algorithm

networkx 模块将为您执行此操作 - 请参阅 the documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多