二叉堆详解

本文详细介绍了二叉堆的概念,包括最大堆和最小堆,并通过实例展示了插入、删除节点以及构建二叉堆的过程,最后提及了二叉堆的数组实现方式。
摘要由CSDN通过智能技术生成

一、什么是二叉堆

二叉堆是完全二叉树或者是近似完全二叉树,它分为两个类型:

  • 最大堆
  • 最小堆

最大堆是指任何一个父节点的值,都大于等于它左右孩子节点的值;最小堆是指任何一个父节点的值,都小于等于它左右孩子节点的值

二、二叉堆的自我调整

1.插入节点

我们以下面的最小堆为例,插入元素
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YiN0ctJ0-1593423185458)(./二叉堆1.png)]
新插入的元素为0,将新元素置于二叉堆最后一个位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PpXfLzF8-1593423185461)(./二叉堆2.png)]
我们让新元素与它的父节点比较,如果新元素小于父节点,则与父节点交换位置,否则调整结束

新元素0与父节点5比较,0小于5,0与5交换位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OV7P0E8s-1593423185463)(./二叉堆3.png)]
新元素0继续与父节点2比较,0小于2,0与2交换位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QoYh0J9d-1593423185464)(./二叉堆4.png)]
新元素0继续与父节点1比较,0小于1,0与1交换位置

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值