我正在尝试将图形结构映射到下面显示的结构中。
这是我需要映射的图表类型的示例
箭头总是从左到右的方向。
这是我正在寻找的结果。
目标是生成这样的 XML:
<root>
<seq>
<mod1/>
<flow>
<seq>
<mod4/>
<mod7/>
</seq>
<seq>
<flow>
<seq>
<flow>
<mod4/>
<mod3/>
</flow>
<mod6/>
</seq>
<seq>
<flow>
<mod4/>
<mod3/>
<mod2/>
</flow>
<mod5/>
</seq>
</flow>
<mod8/>
</seq>
</flow>
</seq>
</root>
有什么算法可以使用吗?
我认为这不相关,但我正在解析 JSON 以使用 JAVA 7 编写 XML。 方框是 Web 服务,箭头代表输入和输出参数,例如,模块 1、2、3 和 4 完成后调用模块 5,它们的输出是其输入。
最佳答案
您上面显示的图表有循环,因此它永远不能表示为树。通常,树被定义为没有循环的连通图。因此只有一种方法可以将一般图转换为树 - 删除循环并在需要时连接它。
编辑:根据您的编辑,图表是定向的,因此您将拥有 DAG这又不是一棵树,但有几个有趣的属性。
关于将图映射到另一个结构的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15640642/