Advertisement

数据结构---堆的操作与排序

阅读量:

介绍

首先需要明确区分数据结构中的堆与内存中的堆区,后者由操作系统进行管理,二者之间并无任何关联。在数据结构中,堆仅存在两种形式,即大堆与小堆。

  • 大堆(大根堆):父节点的数值高于其左右子节点的数值,这意味着大堆的根节点在整个结构中处于最大值的位置,而左右子节点之间的数值关系则无特定要求。
  • 小堆(小根堆):父节点的数值低于其左右子节点的数值,这表明小堆的根节点在整个结构中为最小值,而左右子节点之间的数值关系同样没有明确限制。
这里写图片描述

堆的表示

堆结构一般通过数组形式进行表示,其中数组内存储的是按照层序遍历顺序排列的堆元素,数组的第一个位置对应堆的根节点。

这里写图片描述

实现堆的基本操作

  • 数据结构定义
复制代码
    //定义一个比较函数的函数指针,用来指明该堆是小堆还是大堆
    typedef int (*Compare)(Heap

全部评论 (0)

还没有任何评论哟~