目录
堆的定义
堆(heaps) 是一种特殊的数据组织方式,STL 中的 priority_queue 容器适配器底层就是采用堆来组织数据存储的。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
堆的性质
- 堆中某个节点的值总是不大于或不小于其父节点的值;
- 堆总是一棵完全二叉树。
堆的分类
堆分为大根堆和小根堆。
大根堆
- 每个节点最多有两个子节点。
- 根节点的键值是所有堆节点中键值最大的,并且每个节点的值比儿子节点大。
- 堆的创建必须是一个二叉树。
小根堆
- 每个节点最多有两个子节点。
- 根节点的键值是所有堆节点中键值最小的,并且每个节点的值比儿子节点小。
- 堆的创建必须是一个二叉树。
其余有关堆的介绍可以点击堆的应用之堆排序。
关于堆的介绍就到这里,希望对各位有用,谢谢大家。