堆的概念:
一般是把数组的数据在逻辑结构上看成一颗完全二叉树,如下图所示。
注意:别将C语言中的堆和数据结构的堆混为一谈,本文所讲的数据结构的堆是一种完全二叉树,而C语言中的堆其实是一种内存区域的划分
堆的分类:
小堆:小堆的数组转化为完全二叉树则就是父亲节点要比孩子节点小。
大堆:大堆的数组转化为完全二叉树则就是父亲节点要比孩子节点大。
- 根据大小堆的特点,可以得知有序数组一定是堆,但堆不一定是有序数组
大堆:
小堆:
未完待续..................................................