配对堆中文版.pptVIP

  • 6
  • 0
  • 约 34页
  • 2016-06-19 发布于河南
  • 举报
配对堆 配对堆 配对堆 以上数据显示配对堆可以秒杀斐波那契堆。 容易理解 常数较小 代码量小 定义 配对堆是一个最小 (最大)配对堆是一个用指定的操作完成的最小 (最大) 堆 顶点结构 儿子 指向儿子列表的第一个元素 左、右指针 用双链表作为儿子列表 第一个节点的左指针指向父亲 x是儿子列表的起点当且仅当x.left.son=x 数据 PS:无需记录父亲节点、顶点的度和被切除标记(斐波那契堆的一个标记) 合并两个最大堆 比较、链接操作 比较根大小 把较小的根作为较大根的子树 插入 建立一个包含要插入节点的树,然后把这个树和原树合并 插入 建立一个包含要插入节点的树,然后把这个树和原树合并 最坏情况度数 按9,8,7...,1的顺序插入节点 最坏情况高度 按1,2,3...,n的顺序插入节点 更改节点值 因为顶点没有父亲域,所以我们不能很容易的去判断节点的值是否大于父亲 所以,我们把节点脱离双向链表并与原数合并 更改节点值 更改节点值 更改节点值 删除最大值 如果堆空,返回错误 否则,删除根节点,并把所有子树合并 如何合并子树 好方法 = 平摊复杂度O(log n) 坏方法 = 平摊复杂度O(n) 用坏方法去合并子树 currentTree = first subtree. for (each of the remaining trees) currentTree

文档评论(0)

1亿VIP精品文档

相关文档