Java:最小生成树的数据结构

时间:2012-03-30 11:55:18

标签: java prims-algorithm

我的项目是使用java实现最小生成树。我的目标是使用Prim的算法来完成任务。

图的定义是G =(V,E),其中V是引脚组,E是引脚对之间可能的互连集,对于E中的每个边(u,v),我们有一个称w(u,v)指定连接u和v的成本。

我的想法是使用两个哈希图。首先将pin作为键,将邻居列表作为值。第二个hashmap将edge(u,v)列表作为键,值将是其权重。

您认为存储图表的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

图表通常(不考虑与这些图表一起使用的算法)存储为:

  • 邻接列表,
  • 邻接矩阵,
  • 发病率清单,
  • 发病率矩阵。

所有这些都有关于内存使用和遍历它们所需时间的优点和缺点。 Wikipedia对计算机中的图表表示进行了很好的描述。

答案 1 :(得分:0)

查看wikipedia。您可以使用不同的数据结构以及继承的复杂性

答案 2 :(得分:0)

对于Kruskal和Prim的最小生成树算法,图的邻接列表表示就足够了。与matrice的方法相比,它在内存使用方面更有效。所以在你的情况下这是一个很好的选择。