堆的概念
堆是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆
堆的特点
1.每个父节点最多有2个子节点
2.根节点的键值是所有的堆节点键值中最大(小),且每个节点的值都比其子节点的值大(小)
3.除了根节点没有兄弟节点,最后一个左子节点可以没有兄弟节点,其他节点必须有兄弟节点
图一:
图二:
以下不是堆
堆的表示方法:
建立数组表示堆,数组下标依次对应堆的节点,如图所示:
注意:
i的左子节点-> 2i+1
i的右子节点-> 2i+2
i的 父 节 点 -> (i-1)/2