Java中的图形表示

时间:2012-03-03 09:29:59

标签: java data-structures graph

我必须创建一个使用Graphs(数据结构)的应用程序,但我不知道如何表示它们,并且询问您是否可以给我一些提示。

我应该创建一个Vertex和Edge类吗?如果是,他们的属性应该是什么?

4 个答案:

答案 0 :(得分:11)

我建议使用图表的邻接列表。

最简单的方法可能是创建一个Vertex类,其中包含ArrayList<Vertex>到相邻顶点的链接列表。这足以代表任何图表,您不需要单独的Edge类。

您可以向顶点类添加您喜欢的任何其他数据属性,但您只需要链接列表。

请注意,您可以使用有向边(单向链接)或无向边(相邻顶点相互指向)。

答案 1 :(得分:6)

您可以用典型的方式来表示它。 See here。例如:

答案 2 :(得分:3)

这并不是特定于Java的。两个最常见的表示是邻接矩阵和列表。详情here

如果你想要一个图书馆,JGraphT很不错

答案 3 :(得分:0)

这取决于您的使用案例,但您可能想尝试利用像neo4j这样的“图表数据库”