什么是堆?(不是数据结构中的堆)
4 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
堆是一棵完全二叉树:
1、其根结点的值小于两个子结点的值,其余任何一个结点的值都小于其子结点的值——小根堆。
2、其根结点的值大于两个子结点的值,其余任何一个结点的值都大于其子结点的值——大根堆。
慕慕森
TA贡献1856条经验 获得超17个赞
简单说堆是一种完全二叉树 一般总用来构造优先级队列
堆的特性是父结点总优它任意子节点(所以堆顶元素为最优 但不需要保证左子树和右子树的关系)
堆的物理结构一般用数组等支持索引的线性结构(因为是完全二叉树..)
并且实现构造堆 弹出堆顶元素 添加元素并调整堆等操作
堆排序也是用这个原理实现的 先构造一个堆 然后不断的弹出堆顶元素并调整堆 生成的序列则是有序的
添加回答
举报
0/150
提交
取消