树--2.堆

本质上是一种完全二叉树
分为两个类型:
1.最大堆: 所有父节点的值都大于左右孩子节点的值
2.最小堆:所有父节点的值都小于左右孩子节点的值
二叉堆根节点叫堆顶

1.二叉堆的自我调整

自我调整就是把不符合堆性质的完全二叉树调整成一个堆。

1.插入节点(最小堆举例)

插入时insert到最后一个节点

单一节点上浮 时间复杂度O(logn)

2.删除节点(最小堆举例)

删除跟插入相反 从堆顶开始删除,并维护二叉堆结构把随后一个节点补充到堆顶

下沉时候跟左右节点的最小的节点对比

单一节点下沉 时间复杂度O(logn)

3.构建二叉堆(最小堆举例)

所有非叶子节点都下沉 时间复杂度O(n)

猜你喜欢

转载自www.cnblogs.com/hornets/p/12769313.html
2.