二叉堆的基本操作
插入
对二叉堆的插入记住以下要点:
1.若根节点在数组下标 1 处,那么 下标 i 的左儿子在 下标 2i ,右儿子在下标 2i+1 ; 节点 x 的父节点 在 x/2 处
2.先尝试插入到最后的空位 p ,若不满足性质,则将p的父节点p/2的值放到p处,而继续尝试将值插入到p/2处,以此类推至成功插入。这个过程叫上滤。
删除最小元
要点
1.最小元在根节点,
2.删掉后将留下空位,二叉堆不允许在头部和中间留下空位。需找元素填充
3.删掉一个元素后,堆的大小将减 1 ,那么原本处在最后一个位置的元素也要换位置
4.综合 2 3 可这样操作,先将最后元素放到根节点,然后递归的将这个节点往下调整位置,这个过程叫下滤