zoukankan      html  css  js  c++  java
  • 数据结构-堆的定义描述

    堆是什么?

    它是一种树形组织,使我们能迅速确定包含最大值(或最小值)的结点。

    具体来说,堆是一颗左平衡的二叉树。随着结点的增加,树会逐级从左到右增长。

    (左平衡是指,如果一棵平衡树的最后一层的所有叶子结点都在最靠左边的位置上,则称这棵树是左平衡的。)

    顺序特点

    堆状态的二叉树是“局部有序”的,任何一个结点与其兄弟结点之间都没有必然的顺序关系,但它与其父子结点有大小顺序关系。

    堆的分类

    最大值堆:子结点比父结点小,根结点是树中最大的结点。

    最小值堆:子结点比父结点大,根结点是树中最小的结点。

    表示方式

    对于堆来讲,比较好的表示左平衡二叉树的方式是,将结点通过“层级(水平)遍历”的方式连续存储到一个数组中。

    假设i是树中的某一结点,

        其父结点位于(i-1)/2处(忽略小树部分);

        左子结点位于2i+1处;

        右子结点位于2i+2处;

    这样的组织结构或方式对于堆来说非常重要,通过它我们能迅速定义堆的最后一个结点,最后一个结点指处于树中最深层最右端的结点。

  • 相关阅读:
    ROC曲线
    数学建模的时间表和分工
    找寻子串
    被7整除
    Java中BufferedReader和scanner的对比
    机器学习降维方法
    梯度下降法
    天池大赛
    统一认证系统(三)
    软件设计方案
  • 原文地址:https://www.cnblogs.com/idreamo/p/8545328.html
Copyright © 2011-2022 走看看