『算法设计_伪代码』斐波那契堆

一、堆结构

由一组最小堆有序树组成,每个节点有key值、四个指针(parent,child,left,right)、两个属性(是否被标记,degree)组成,堆对象有两个属性:H.min(有序树roots中最小的那个),H.n(总节点数)

二、势能函数

由树的个数、被标记节点数确定

三、堆操作

1、初始化

由于势能变化为0,所以平摊代价等于实际代价

2、插入操作

PPT上未显式指定左右指针值,应该包含在list操作中

这个插入操作仅仅插入新的树,代价依然是线性的

3、寻找最小节点

4、合并不同堆

合并root链表,修改堆的min和n值

5、抽取最小值

猜你喜欢

转载自www.cnblogs.com/hellcat/p/9267300.html