什么是堆? 堆是计算机中一种特殊的数据结构,是最高效的优先级队列。堆通常可以被看做是一棵完全二叉树的数组对象。 堆的性质 堆满足以下性质: + 堆中某个结点的值总是不大于或不小于其父结点的值; + 堆总是一棵完全二叉树。 + 堆可以用一个一维数组来表示,对于任意i位置的元素,它的左子结点在2i的位置,右子结点在2i+1的位置,根结点的下标从1开始。 + 它的父结点在i/2的位置。 根结点最大的堆称为最大堆,根结点最小的堆称为最小堆。 堆是非线性数据结构,相当于一维数组,有两个直接后继。