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

标签 java prims-algorithm

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

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

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

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

最佳答案

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

  • 邻接表,
  • 邻接矩阵,
  • 事件列表,
  • 关联矩阵。

在内存使用和遍历它们所需的时间方面,它们都有各自的优点和缺点。 Wikipedia关于计算机中的图形表示有一篇很棒的文章。

关于Java:最小生成树的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9942444/

相关文章:

algorithm - 用于检查生成树是否最多可以使用权重边的线性时间算法?

java - splitPreserveAllTokens 方法行为

java - 面临SpringBoot Security模块登录错误

Java Logger 不轮换日志文件

java - drawString() 方法覆盖了之前的绘图(paintComponent 不清除)

algorithm - Prim 的最小生成树算法 - 算法混淆

algorithm - 构造一个高效的最小生成树,使得 G 中给定的顶点子集是叶子 + 证明

Java Maven OSGi 从文件系统动态加载 jar 并在运行时从中运行类方法

c++ - 修改Prim的实现以记录最短路径的权重c++

algorithm - 使用Prim算法求有向图的MST