数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
程序员酥皮蛋1 小时前
hot 100 第二十四题 24.回文链表
数据结构·链表
仟濹4 小时前
【算法打卡day7(2026-02-12 周四)算法:BFS and BFS】 3_卡码网107_寻找存在的路线_并查集
数据结构·算法·图论·宽度优先
数智工坊5 小时前
【数据结构-排序】8.2 冒泡排序-快速排序
数据结构
芝士爱知识a5 小时前
[2026深度测评] AI期权交易平台推荐榜单:AlphaGBM领跑,量化交易的新范式
开发语言·数据结构·人工智能·python·alphagbm·ai期权工具
芝士爱知识a5 小时前
【FinTech前沿】AlphaGBM:重塑期权交易的智能分析引擎——从原理到实践
数据结构·数据库·人工智能·alphagbm·期权
EE工程师6 小时前
数据结构篇 - 循环队列
数据结构
俩娃妈教编程7 小时前
洛谷选题:P1420 最长连号
数据结构·算法
二年级程序员7 小时前
单链表算法题思路详解(上)
c语言·数据结构·c++·算法
wangluoqi7 小时前
c++ 数据结构-树状数组、线段树 小总结
开发语言·数据结构·c++
化学在逃硬闯CS7 小时前
Leetcode111. 二叉树的最小深度
数据结构