数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
清木!2 小时前
排序算法比较
数据结构·算法·排序算法
汉克老师3 小时前
GESP6级C++考试语法知识(十七、数据结构(三、认识队列 Queue))
数据结构·c++·队列·gesp6级·gesp六级·数组模拟队列
JavaWeb学起来4 小时前
Python学习教程(六)数据结构List(列表)
数据结构·python·python基础·python教程
啊董dong7 小时前
noi-2026年5月12号小测验
数据结构·c++·算法
南境十里·墨染春水7 小时前
数据结构 —— 链表
数据结构·链表
图码8 小时前
二分查找进阶:如何在有序数组中快速找到Upper Bound?
数据结构·算法·面试·分类·柔性数组
Cthy_hy8 小时前
树状数组(BIT)进阶:差分优化实现区间修改、区间查询
数据结构·python·算法
代码中介商10 小时前
红黑树完全指南:从五条性质到完整插入删除实现
数据结构·算法
Sarvartha12 小时前
单链表的顺序建立与结点的删除(期末题复现)
数据结构
Dlrb121113 小时前
数据结构-链表
数据结构·链表·逻辑结构·单向链表·物理结构·valgrind工具