堆的定义
堆是一棵完全被填满的二叉树,可以的例外是在底层,底层上的元素从左到右填入。这样的树被称为完全二叉树。堆有两种情况,一种是大堆,就是最大元素在最根部的,一种是小堆,就是最小元素位于最根部的。下面是一棵完全二叉树的结构图:
堆的性质
堆可以使我们想要的操作得到快速的执行,为了达到快速执行的目的,一般来说堆的最小元应该在根上,当我们要考虑任意子树也应该是堆,那么任意节点就应该小于它的所有后裔。这就是堆的性质。这样可以根据堆的性质,可以在根处找到最小的元素,根据堆的结构我们可以将堆定义成大堆或者小堆:大堆表示位于结点的元素要大于其所有的子结点,小堆表示位于结点的元素要小于其所有的子结点