二叉堆例程
二叉堆(一)之 图文解析 和 C语言的实现 - 如果天空不死
二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树)。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。
堆的定义
堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质:
[ 性质一 ] 堆中任意节点的值总是不大于(不小于)其子节点的值;
[ 性质二 ] 堆总是一棵完全树。
将任意节点不大于其子节点的堆叫做 最小堆 或 小根堆 ,而将任意节点不小于其子节点的堆叫做 最大堆 或 大根堆 。常见的堆有二叉堆、左倾堆、斜堆、二项堆、斐波那契堆等等。