数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
666HZ6662 小时前
数据结构4.0 串
c语言·数据结构·算法
你撅嘴真丑3 小时前
蛇形填充数组 与 查找最接近的元素
数据结构·c++·算法
blackicexs4 小时前
第四周第四天
数据结构·c++·算法
Pluchon4 小时前
硅基计划4.0 算法 简单实现B树
java·数据结构·b树·算法·链表
im_AMBER4 小时前
Leetcode 119 二叉树展开为链表 | 路径总和
数据结构·学习·算法·leetcode·二叉树
DN20205 小时前
当AI开始评估客户的“成交指数”
数据结构·人工智能·python·microsoft·链表
Vic101016 小时前
算法D1-20260212:双指针专题
java·数据结构·算法
935966 小时前
机考24 翻译18 单词11
c语言·数据结构·算法
无聊的小坏坏7 小时前
一文讲通:二分查找的边界处理
数据结构·c++·算法