数据结构_二项堆之一

           今天,我们主要来看一种可合并堆,二项堆。后面还会介绍斐波那契堆。我们这里可以先回顾一下,之前的二叉堆:最大堆和最小堆的定义。最大堆,指的是,除了根结点以外,所有结点的值小于或等于其父结点的值。最小堆,正好相反,结点的值大于或等于其父结点的值。我们在堆排序算法中,使用的最大堆,最小堆通常在构造优先队列的时候使用。
      可合并堆一般支持如下的五种操作:
      MAKE-HEAP():创建并返回一个不包含任何元素的新堆。
      INSERT(H,x):将结点x(其关键字域已填入了内容)插入堆H中。
      MINIMUN(H):返回一个指向堆H中包含最小关键字的结点的指针。
      EXTRACT-MIN(H):将堆H中包含最小关键字的结点删除,并返回一个指向该结点的指针。
      UNION(H1,H2):创建并返回一个包含H1和H2中所有结点的新堆。同时H1和H2被这个操作删除。
      另外这两个堆还支持如下的两个操作:
      DECREASE-KEY(H,x,k):将新关键字k(假定它不大于当前的关键字值)赋给堆H中的结点x.
      DELETE(H,x):从堆H中删除结点x.
      二项堆的定义:
      一个二项堆由一组二项树所表示。
      二项树:
      二项树是一种递归定义的有序树,二项树Bk由两颗Bk-1二项树链接而成。其中一颗树的根是另一个树的根的最左孩子。
      二项树的性质:
      1,共有2的k次方个结点。
      2,树的高度为K.
      3,在深度为i处,恰有(K 到 i)的结点,其中i为0,1,2,3...k.所以看到这里是一个对称的树。其中中间层的结点数最多,第0层和最后一层的结点数都是1.
      4,根的度数为k,它大于任何其它结点的度数,并且,如果根的子女从左到右编号为k-1,k-2到0,子女i是子树Bi的根。
     
      二项堆由满足下面二项堆性质的二项树组成:
      1,H中的每个二项树遵循最小堆性质:结点的关键字的值大于或者等于其父结点的关键字。我们说这种树是最小堆有序的。
      2,对任意非负整数k,在H中至多有一颗二项树的根具有度数k.
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值