1. 二叉堆
堆是一个数组A, 它可以被看成一个近似的完全二叉树
以(a)二叉树和(b)数组形式展现的是一个最大堆. 结点上方的数字是它在数组中相应的下标.
若一个结点下标为 i i , 可以得到它的父结点, 左孩子和右孩子的下标:
- PARENT(
)
- return i/2 i / 2
- LEFT( i i ):
- return
- RIGHT( i i ):
- return
堆是一个数组A, 它可以被看成一个近似的完全二叉树
以(a)二叉树和(b)数组形式展现的是一个最大堆. 结点上方的数字是它在数组中相应的下标.
若一个结点下标为 i i , 可以得到它的父结点, 左孩子和右孩子的下标: