数据结构之堆的实现

首先我们要想堆应该用什么实现,我们这里可以使用数组,因为每一层的数是有限个的,所以我们可以很容易将数的每一个位置对应到数组中去。

那我们就可以仿照顺序表写出我们的结构。

然后我们要考虑我们要实现哪些函数。

最基本的功能初始化和销毁,不再赘述。

然后我们实现打印

然后我们实现经典的功能入堆。

重点保证空间足够。然后我们通过Adjustup去维护大,小根堆的堆放。(此处实现的是大根堆)

将其与父节点比较,然后进行移动,直至合适位置。

然后我们实现判断是否为空和显示堆顶元素。

然后就是本贴的最后的功能,出堆。

将最后一个元素移动到堆顶,然后再进行下放,维护大根堆。

综上就是全部内容。

相关推荐
ZOOOOOOU21 分钟前
云平台赋能门禁终端,打造智慧社区一体化管理
大数据·数据结构·架构
Severus_black40 分钟前
【初阶数据结构】C语言实现堆(Heap),巨详细!
c语言·数据结构
Han_han9191 小时前
List系列集合:
数据结构·windows·list
Liangwei Lin2 小时前
LeetCode 394. 字符串解码
数据结构·算法
YuanDaima20482 小时前
动态规划基础原理与题目说明
数据结构·人工智能·python·算法·动态规划·手撕代码
richard_yuu2 小时前
数据结构精讲:图的最短路径与关键路径
数据结构·算法
MegaDataFlowers3 小时前
102.二叉树的层序遍历
数据结构
故事和你913 小时前
洛谷-【数据结构2-2】线段树2
开发语言·数据结构·算法·动态规划·图论
故事和你913 小时前
洛谷-【数据结构2-2】线段树1
开发语言·javascript·数据结构·算法·动态规划·图论
phltxy3 小时前
Redis 数据结构之 List 详细解析
数据结构·redis·list