数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
7yewh2 小时前
SLAM 从视觉里程计到建图(6)
数据结构·人工智能·机器人·自动驾驶·嵌入式
程序员清风3 小时前
pandas 核心数据结构:Series 与 DataFrame
数据结构·pandas
All for pursuit.3 小时前
【回溯-5】78.子集
数据结构·c++·算法·leetcode
_wxd6664 小时前
C++STL map与set
数据结构·c++
mmmmath_35 小时前
LeetCode.150.逆波兰表达式求值
数据结构
漂流瓶jz5 小时前
UVA-1610 聚会游戏 题解答案代码 算法竞赛入门经典第二版
数据结构·c++·算法·题解·aoapc·算法竞赛入门经典·uva
imDwAaY5 小时前
Redis Set 如何节省内存?从整数集合到哈希表的设计取舍
数据结构·redis·散列表
无名猿5 小时前
map / set 完全指南:红黑树与有序容器
数据结构·c++·性能优化·stl·标准库
All for pursuit.5 小时前
【回溯-3】39.组合总和
数据结构·c++·算法·leetcode
不会就选b6 小时前
算法日常・每日刷题--<动态规划>6
数据结构·算法·leetcode