将图映射到另一个结构的算法

标签 algorithm data-structures graph

我正在尝试将图形结构映射到下面显示的结构中。

这是我需要映射的图表类型的示例

enter image description here

箭头总是从左到右的方向。

这是我正在寻找的结果。

enter image description here

目标是生成这样的 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/

相关文章:

r - DiagrammeR:如何在箭头旁边添加标签?

algorithm - K 尺寸子图

javascript - 将两个日期系列合并为一个

java - 文本比较算法或程序?

algorithm - 快速获取图像主色的方法

java - Photoshop "Pucker Tool"算法

haskell - 如何理解《纯函数式数据结构》中的分段二叉堆

algorithm - 恒定时间和有效恒定时间复杂度之间的差异

java - 降低Java中数据结构的内存占用

java - 遍历对象列表且每个对象都有对象列表的优化方案