数据结构-堆的定义描述

本文介绍了堆数据结构的概念,包括最大值堆和最小值堆,并详细解释了堆的左平衡特性及结点之间的顺序关系。此外,还介绍了如何通过数组表示二叉树形式的堆结构,便于高效地进行数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

堆是什么?

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

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

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

顺序特点

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

堆的分类

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

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

表示方式

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

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

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

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

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

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

 

转载于:https://www.cnblogs.com/idreamo/p/8545328.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值