代码之家  ›  专栏  ›  技术社区  ›  cdarwin

Java中的标记图形表示

  •  1
  • cdarwin  · 技术社区  · 14 年前

    假设我们有一个有向标记的图,即一个图,其中从一个顶点到另一个顶点的边用一个值标记。我们如何在Java中建模?(或者一般是面向对象语言?)

    我现在的解决办法是去上课 Vertex 哪个有 Collection<Edge> outgoingEdges 和A Collection<Edge> incomingEdges 在哪里 Edge 是一个包含三个字段的类:

    • label 哪个是边缘的标签
    • predecessor 哪个是源头 顶点
    • successor 哪个是目的地 顶点

    其他解决方案?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Frodo Baggins    14 年前

    我不会说你需要分离出输出和输入的边缘,你只需要检查顶点是源还是目标,并有一个实用的方法给你输出和输入。我注意到很多实现代码导向图和无向图是不同的,实际上没有理由这样做。

        2
  •  1
  •   The Archetypal Paul    14 年前

    看起来不错。它类似于用辅助表在数据库中建模多对多关系的标准技术,以保存有关关系的信息。

    是否还有一组根顶点?

    根据需要进行的遍历,您可能不需要传入的边,例如,如果只从根开始。

    严格地说,您甚至不需要顶点对象,如果没有附加任何其他信息,您可以对顶点编号,并将编号放在每个边的前置和后继中。不过,这可能有点远。)

        3
  •  0
  •   Vanchinathan Chandrasekaran    14 年前

    我认为你做的是对的。可以添加一个以顶点列表和边列表为成员的图形类。

    你已经把所有的实体表示为对象,所以我觉得没问题。