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

esk*_*era 1 algorithm graph data-structures

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

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

在此输入图像描述

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

这是我要找的结果.

在此输入图像描述

目标是生成这样的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>
Run Code Online (Sandbox Code Playgroud)

我可以使用任何算法吗?

我不认为它是相关的,但我正在解析JSON以使用JAVA 7编写XML.框是Web服务,箭头表示输入和输出参数,因此,例如,模块5被调用一次模块1,2,3和4已完成,其输出是其输入.

izo*_*ica 5

您在上面显示的图表具有周期,因此它永远不能表示为树.通常,树被定义为没有循环的连通图.因此,只有一种方法可以将常规图转换为树 - 删除周期并在需要时连接它.

编辑:根据您的编辑,图表是定向的,所以你将有一个DAG,它不是一个树,但有几个有趣的属性.