数据结构之堆的实现

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

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

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

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

然后我们实现打印

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

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

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

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

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

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

综上就是全部内容。

相关推荐
额,不知道写啥。7 分钟前
P5314 ODT(毒瘤树剖)
数据结构·c++·算法
CHANG_THE_WORLD8 分钟前
深入指针5:回调函数与泛型排序
数据结构·算法
qq_4542450311 分钟前
计算机与AI领域中的“上下文”:多维度解析
数据结构·人工智能·分类
今儿敲了吗13 分钟前
24| 字符串
数据结构·c++·笔记·学习·算法
小龙报36 分钟前
【51单片机】不止是调光!51 单片机 PWM 实战:呼吸灯 + 直流电机正反转 + 转速控制
数据结构·c++·stm32·单片机·嵌入式硬件·物联网·51单片机
qq_454245031 小时前
Graphkey:使用占位符彻底解耦函数与工作流
数据结构·c#
测绘工程师1 小时前
【排序算法】冒泡排序
数据结构·算法·排序算法
载数而行5202 小时前
算法系列1之最小生成树
c语言·数据结构·c++·算法·贪心算法
重生之后端学习2 小时前
208. 实现 Trie (前缀树)
java·开发语言·数据结构·算法·职场和发展·深度优先
识君啊2 小时前
Java 栈 - 附LeetCode 经典题解
java·数据结构·leetcode·deque··stack·lifo