数据结构-堆的定义描述

堆是什么?

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

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

(左平衡是指,若是一棵平衡树的最后一层的全部叶子结点都在最靠左边的位置上,则称这棵树是左平衡的。)blog

顺序特色

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

堆的分类

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

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

表示方式

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

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

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

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

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

这样的组织结构或方式对于堆来讲很是重要,经过它咱们能迅速定义堆的最后一个结点,最后一个结点指处于树中最深层最右端的结点。

相关文章
相关标签/搜索