数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
额鹅恶饿呃19 分钟前
C语言中的数据结构和变量
c语言·数据结构·算法
万法若空2 小时前
【数据结构-哈希表】哈希表原理
数据结构·算法·散列表
tachibana22 小时前
hot100 翻转二叉树(226)
java·数据结构·算法·leetcode
兰令水2 小时前
leecodecode【面试150】【2026.7.9打卡-java版本】
java·数据结构·leetcode·面试·职场和发展
A.零点4 小时前
期末复习,408考研数据结构:第一章绪论完整知识梳理与真题深度解读
c语言·数据结构·笔记·考研
阿文的代码库5 小时前
经典算法题剖析:按奇偶排序数组
数据结构·算法
玛卡巴卡ldf8 小时前
【LeetCode 手撕算法】(细节知识点总结)
java·数据结构·算法·leetcode·力扣
Yang_jie_0310 小时前
笔记:数据结构(链队列的相关判断条件)
数据结构·笔记
zmzb010311 小时前
C++课后习题训练记录Day154
数据结构·c++·算法
万法若空20 小时前
【算法-查找】查找算法
java·数据结构·算法