0

我想表示一个无向图,比如这个:

http://cnx.org/content/m29399/latest/Picture%202.png

成一个 xml 文件。我不确定如何开始。

编辑:我想要 xml 格式的数据,所以我可以使用 xml 重建图形。

提前致谢

4

4 回答 4

1

恕我直言,您不应该尝试重新发明轮子,只需使用现有的基于 XML 的图形格式之一:GraphMLXGMMLGXL。GraphML 似乎是最容易开始的。

于 2013-01-09T10:49:37.130 回答
0

我一直在尝试,这似乎奏效了:

   <Nodes>
       <Node>
           <Name>A</Name>
       </Node> 
       <Node>
           <Name>B</Name>
       </Node> 
        ....
   </Nodes>

   <Routes>
       <Route>
          <from>A</from>
          <to>B</to>
          <cost>7</cost>
        </Route>
        ....
   </Routes>

可能不是最好的方法,但这对我有用:)enter code here

于 2013-01-09T10:44:51.357 回答
0

图由顶点和边组成。所以在顶层,XML 描述应该是这样的

<graph>
    <vertices>...</vertices>
    <edges>...</edges>
</graph>

<vertices>容器将有元素<vertex>来携带每个顶点的信息。特别是,您将需要一个唯一标识符,边可以通过该标识符引用顶点。所以,像这样

    <vertices>
        <vertex id="A">other information, if needed</vertex>
        <vertex id="B">...</vertex>
        ...
    </vertices>

<edge>容器内的每个<edges>都需要至少三条信息:连接的顶点和边缘的权重。因此,例如

    <edges>
        <edge ends="A B">7</edge>
        <edge ends="B C">8</edge>
        ...
    </edges> 

您可以将所有这些放入一个模式中,例如,您可以强制要求“ends”属性携带对图中确实存在的顶点 id 的引用(即,查找 xs:ID 和 xs:IDREF XML 模式文档)。

于 2013-01-08T17:21:24.223 回答
0

您是否需要将图形转换为 xml,或者您是否已经拥有某种格式的数据?

第一个很难,第二个你可以看看Boost::Graph

于 2013-01-08T14:27:39.440 回答