我目前正在研究一个数天到期的数据结构项目,我不明白这些说明。我们要通过kruskal算法制作最小生成树,但也需要使用ArrayBasedList,堆,向上树和邻接列表来实现它。 这些东西对我来说非常混乱,堆和up树只是一个基于数组的列表,其中的东西是以不同的顺序输入的吗?还是他们需要自己的课程? 2.什么是邻接清单?我必须返回我的堆的字符串版本,我的邻接列表和我的mst。我非常紧张/困惑,任何理解如何开始这个的帮助都非常感激。
该项目基本上是找到岛屿(顶点)之间成本最低的桥梁(边缘)的最小生成树,因此它是一个加权图。
答案 0 :(得分:1)
您应该首先区分这些数据结构的目的。例如,您可以使用adjacency list
来存储图表信息。你会在哪里使用heap
?按顺序处理边缘。然后找出可以使用不同数据结构进行的不同变体。数据结构以不同方式处理信息,因此它们可能具有不同的最终时间复杂性。一旦你设法理解这些碎片,就会看到它们如何结合在一起并实现算法。
请参阅此link以获得分步演示。