二叉堆的定义:
1.二叉堆是一个完全二叉树结构。完全二叉树不一定是一个满二叉树。完全二叉树左节点必须是满的,右节点为可以为空。把元素一层一层的从左往右依次排列。
2.当满足该节点的左右孩子节点都小于该节点时,称为最大堆。反之,当该节点的左右孩子节点大于该节点时,称为最小堆。
Sift Up(上浮):当我们往堆中添加了个元素的时候,在堆的最后添加一个元素,再将该元素进行上浮操作,即和它的父节点一直进行比较,若比它的父节点大则交换位置,否则不动。
Sift Down(下沉):当我们取出堆中最大的元素时,首先将根元素和最尾端的元素进行交换位置,然后删掉最尾端的元素,然后再将此时的顶端元素进行下层操作,即将该元素和它的左右孩子中的最大的一个进行比较,若比它小则交换位置否则不动 。
扫描二维码关注公众号,回复:
5622268 查看本文章