请教一下什么是堆?(不是数据结构中的堆)?

什么是堆?(不是数据结构中的堆)


慕妹3146593
浏览 623回答 4
4回答

DIEA

堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表

料青山看我应如是

堆是一棵完全二叉树:1、其根结点的值小于两个子结点的值,其余任何一个结点的值都小于其子结点的值——小根堆。2、其根结点的值大于两个子结点的值,其余任何一个结点的值都大于其子结点的值——大根堆。

慕慕森

简单说堆是一种完全二叉树 一般总用来构造优先级队列堆的特性是父结点总优它任意子节点(所以堆顶元素为最优 但不需要保证左子树和右子树的关系)堆的物理结构一般用数组等支持索引的线性结构(因为是完全二叉树..)并且实现构造堆 弹出堆顶元素 添加元素并调整堆等操作堆排序也是用这个原理实现的 先构造一个堆 然后不断的弹出堆顶元素并调整堆 生成的序列则是有序的
打开App,查看更多内容
随时随地看视频慕课网APP