带有 prim 的堆结构

heap structure with prim's

我想问一下prim算法使用堆结构有什么好处? 如作业所示:"Since the heap structure you implement will be used for a Prim’s algorithm" 谢谢 !

您需要某种形式的 Prim 算法队列。您可以使用一个简单的集合并每次搜索下一个元素。另一种方法是拥有一个列表并将所有新元素插入正确的位置。

对于 Prim 算法在队列上使用的操作,堆非常快。

例如,您可以在常数时间内将一个新元素插入斐波那契堆(一种特殊的堆)中。

Prim`s Algorithm 类似于图遍历技术:BFS,(更确切地说它使用 BFS 更好)。 BFS 中需要一个队列。

简单BFS需要的普通队列数据结构是先进先出。对于 Prim`s,需要修改队列的这种行为。

数据结构需要从其持有的元素中选择最小值元素,而不是先进先出。 Prim算法对底层数据结构所需要的操作必须支持

  1. 新插入

  2. 修改已放入数据结构的元素的值。

  3. 选取(并删除)数据结构中已包含的最少项。

这些操作可以高效Min-Heap 实现。为简单起见,使用二叉堆,为了提高效率,可以使用斐波那契堆。