数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
炽烈小老头9 小时前
【每天学习一点算法 2025/12/19】二叉树的层序遍历
数据结构·学习·算法
Queenie_Charlie9 小时前
HASH表
数据结构·c++·哈希算法
im_AMBER11 小时前
数据结构 13 图 | 哈希表 | 树
数据结构·笔记·学习·算法·散列表
LYFlied11 小时前
【算法解题模板】动态规划:从暴力递归到优雅状态转移的进阶之路
数据结构·算法·leetcode·面试·动态规划
合方圆~小文12 小时前
4G定焦球机摄像头综合介绍产品指南
数据结构·数据库·人工智能
FMRbpm12 小时前
串练习--------535.TinyURL的加密和解密
数据结构·c++·新手入门
Bruce_kaizy13 小时前
c++单调数据结构————单调栈,单调队列
开发语言·数据结构·c++
阿坤带你走近大数据13 小时前
Python基础知识-数据结构篇
开发语言·数据结构·python
dragoooon3414 小时前
[C++——lesson32.数据结构进阶——「初识哈希」]
数据结构·c++·哈希算法
风筝在晴天搁浅14 小时前
hot100 239.滑动窗口最大值
数据结构·算法·leetcode