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成神之路。
共有 0 条评论