有人可以帮助澄清最小生成树的实现吗?
could someone help clarify this implementation of a Minimum Spanning Tree?
我目前正在处理几天后到期的数据结构项目,但我不理解其中的说明。我们要通过 kruskal 算法生成最小生成树,但还需要使用 ArrayBasedList、堆、向上树和邻接表来实现它。
1.这些东西让我很困惑,heap和up tree会不会只是一个基于数组的列表,并且输入的东西顺序不同?还是他们需要自己的 类?
2.什么是邻接表?我必须 return 我的堆、我的邻接列表和我的 mst 的字符串版本。我非常 nervous/confused,非常感谢任何帮助理解如何开始的帮助。
该项目基本上是找到岛(顶点)之间成本最低的桥(边)的最小生成树,因此它是一个加权图。
您应该首先区分这些数据结构的用途。例如,您将使用 adjacency list
来存储图形信息。你会在哪里使用 heap
?按顺序处理边缘。然后找出您可以使用不同的数据结构进行的不同变体。数据结构以不同方式处理信息,因此它们可能具有不同的最终时间复杂度。一旦你设法理解了这些部分,就会看到它们是如何组合在一起并实现算法的。
参考此 link 进行分步演示。
我目前正在处理几天后到期的数据结构项目,但我不理解其中的说明。我们要通过 kruskal 算法生成最小生成树,但还需要使用 ArrayBasedList、堆、向上树和邻接表来实现它。 1.这些东西让我很困惑,heap和up tree会不会只是一个基于数组的列表,并且输入的东西顺序不同?还是他们需要自己的 类? 2.什么是邻接表?我必须 return 我的堆、我的邻接列表和我的 mst 的字符串版本。我非常 nervous/confused,非常感谢任何帮助理解如何开始的帮助。
该项目基本上是找到岛(顶点)之间成本最低的桥(边)的最小生成树,因此它是一个加权图。
您应该首先区分这些数据结构的用途。例如,您将使用 adjacency list
来存储图形信息。你会在哪里使用 heap
?按顺序处理边缘。然后找出您可以使用不同的数据结构进行的不同变体。数据结构以不同方式处理信息,因此它们可能具有不同的最终时间复杂度。一旦你设法理解了这些部分,就会看到它们是如何组合在一起并实现算法的。
参考此 link 进行分步演示。