Java中堆的底层结构实现

堆的特性:
1、它是完全二叉树,除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不 是满的,那么要求左满右不满。

2、通常用数组来实现,将二叉树的结点按照层级顺序放入数组中,根结点在位置1,它的子结点在位置2和3,而子结点的子 结点则分别在位置4,5,6和7,以此类推。

如果一个结点在数组中的索引为k,则它的父结点的索引为k/2,它的左右子结点的索引分别为2k和2k+1。这样,在不使用指针的情况下,我们可以通过计算元素在数组中的索引来实现结点在树中上下移动
3、每个结点的值都大于等于它的两个子结点。
堆的API设计

 堆的代码实现
/**
* @author: xuzhilei6656
* @create: 2021-12-10 11:26
* @description: 堆的实现
**/
public class Heap> {
//存储堆中的元素
private final T[] items;
//记录

Java中堆的底层结构实现最先出现在Python成神之路

版权声明:
作者:dingding
链接:https://www.techfm.club/p/9614.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>