数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
仰泳的熊猫3 分钟前
题目 1429: 蓝桥杯2014年第五届真题-兰顿蚂蚁
数据结构·c++·算法·蓝桥杯
Yupureki11 分钟前
《算法竞赛从入门到国奖》算法基础:入门篇-分治
c语言·开发语言·数据结构·c++·算法·贪心算法
充值修改昵称15 分钟前
数据结构基础:B*树B+树的极致优化
数据结构·b树·python·算法
爱编码的傅同学19 分钟前
【今日算法】LeetCode 11.盛水最多的容器 15.三数之和 283.移动0
数据结构·算法·leetcode
漫随流水44 分钟前
leetcode回溯算法(131.分割回文串)
数据结构·算法·leetcode·回溯算法
你撅嘴真丑1 小时前
第六章 数据结构基础
数据结构
wWYy.1 小时前
详解redis(10):数据结构Zset
数据结构·数据库·redis
Remember_9931 小时前
文件系统与IO操作:深入解析与Java实践
java·开发语言·数据结构·ide·python·算法
bubiyoushang88811 小时前
基于CLEAN算法的杂波抑制Matlab仿真实现
数据结构·算法·matlab
曾经的三心草11 小时前
redis-2-数据结构内部编码-单线程-String命令
数据结构·数据库·redis