下面所讨论的堆都是基于完成二叉树的,并且根结点的序号从1开始,一直到n。叶子结点的高度为0,其父结点的高度为1,依此向上对每一层的结点的高度进行计算。
- 编号为i的结点:
parent(i)=floor(i/2); left(i)=2i; right(i)=2i+1; - 堆的高度为floor(lgn);
- 叶子结点的的下标是floor(n/2)+1,floor(n/2)+2,...,n;
- 至多有floor(n/2h+1)个高度为h的结点;
d叉堆的分析可见另一篇文章:
http://blog.csdn.net/youdianluanluan/article/details/7026665