一:什么是堆
堆结构-->数组对象
可以视为一棵完全二叉树
树中每个节点中存放该节点中值的那个元素相对应\green{树中每个节点中存放该节点中值的那个元素相对应}树中每个节点中存放该节点中值的那个元素相对应
a[i]-->下标iii是节点编号,a[i]是该节点编号对应的值
二:堆的性质
1.大根堆1.\BLUE{大根堆}1.大根堆[1]
除根结点外每个节点iii,a[父亲(i)]>=a[i]
即 除根结点外,所有节点的值都不超过其父节点值
堆中最大的元素存在根节点中
2.小根堆2.\PURPLE{小根堆}2.小根堆[2]
除根结点外每个节点iii,a[父亲(i)]<a[i]
即 除根结点外,所有节点的值都不小于其父节点值
堆中最小的元素存在根节点中
(代码以小根堆为例)
三:PUT
PUT操作:在堆中<加入>一个元素
1.在堆尾加入一个元素,并把节点设为设为<当前结点>
四:GET
GET:<返回>堆顶的值,并删除堆顶
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. 大根堆
↩︎
2. 小根堆
↩︎