数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
辞砚技术录13 小时前
MySQL面试题——索引、B+树
数据结构·数据库·b树·面试
666HZ66614 小时前
数据结构1.0 数据结构在学什么
数据结构·算法
余瑜鱼鱼鱼14 小时前
Java数据结构:从入门到精通(五)
数据结构
空空潍14 小时前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode
R-G-B14 小时前
BM28 二叉树的最大深度
数据结构·算法·二叉树·bm28·二叉树的最大深度
菜鸟233号15 小时前
力扣416 分割等和子串 java实现
java·数据结构·算法·leetcode
求梦82015 小时前
【力扣hot100题】缺失的第一个正数(12)
数据结构·算法·leetcode
黎雁·泠崖16 小时前
二叉树实战进阶全攻略:从层序遍历到OJ题深度解析
c语言·数据结构·leetcode
散峰而望16 小时前
【算法竞赛】顺序表和vector
c语言·开发语言·数据结构·c++·人工智能·算法·github
cpp_250116 小时前
B3927 [GESP202312 四级] 小杨的字典
数据结构·c++·算法·题解·洛谷