数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
测绘第一深情20 小时前
在vscode中使用codex教程(个人安装经验)
数据结构·ide·vscode·python·算法·计算机视觉·编辑器
Liangwei Lin20 小时前
LeetCode 41. 缺失的第一个正数
数据结构·算法·leetcode
平行侠21 小时前
022Miller-Rabin 概率素性检验 - 概率与数论的完美联姻
数据结构·算法
wuweijianlove21 小时前
算法与数据结构协同优化的设计思想的技术7
数据结构·算法
故事和你9121 小时前
洛谷-数据结构2-1-二叉堆与树状数组1
开发语言·数据结构·c++·算法·动态规划·图论
多加点辣也没关系1 天前
数据结构与算法|第十七章:贪心算法
数据结构·算法·贪心算法
多加点辣也没关系1 天前
数据结构与算法|第十四章:排序算法(上)— 比较类排序
数据结构·算法·排序算法
北顾笙9801 天前
day42-数据结构力扣
数据结构
风筝在晴天搁浅1 天前
阿里淘天/京东 CodeTop LeetCode103.二叉树的锯齿形层序遍历
数据结构
郝学胜-神的一滴1 天前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表