二叉堆分为两种,一种是大顶堆,一种是小顶堆。
以大顶堆为例,堆得存储用一维数组表示,i结点的左右孩子为2i,2i+1,父亲结点为【i/2】
基本操作有:
MAX_heapify(A,i);//堆的调整操作
bulid_MAX_heap(A,w,size);//创建一个大顶堆
maximum(A);//取堆顶
extrack_MAX(A);//取堆顶并删除
increase_key(A,i,key);//将第i个节点的键值上升到key
MAX_insert(A,key);//添加结点
小顶堆的操作类似