堆(Heap)
堆(Heap)是一种树状的数据结构(不要跟内存模型中的"堆空间"混淆),常见的堆实现:
- 堆的一个重要性质:任意节点的值总是>=(或<=)子节点的值:
- 如果任意节点的值总是>=子节点的值,称为最大堆、大根堆、大顶堆
- 如果任意节点的值总是<=子节点的值,称为最小堆、小根堆、小顶堆
- 最大堆的最大值肯定在根节点处,最小堆的最小值也是在根节点处
- 由此可见,堆中的元素必须具备可比较性(跟二叉搜索树一样)
堆(Heap)是一种树状的数据结构(不要跟内存模型中的"堆空间"混淆),常见的堆实现: