二叉堆例程
二叉堆(一)之 圖文解析 和 C語言的實現 - 如果天空不死
二叉堆是一種特殊的堆,二叉堆是完全二元樹(二叉樹)或者是近似完全二元樹(二叉樹)。二叉堆有兩種:最大堆和最小堆。最大堆:父結點的鍵值總是大于或等于任何一個子節點的鍵值;最小堆:父結點的鍵值總是小于或等于任何一個子節點的鍵值。
堆的定義
堆(heap),這里所說的堆是數據結構中的堆,而不是內存模型中的堆。堆通常是一個可以被看做一棵樹,它滿足下列性質:
[ 性質一 ] 堆中任意節點的值總是不大于(不小于)其子節點的值;
[ 性質二 ] 堆總是一棵完全樹。
將任意節點不大于其子節點的堆叫做 最小堆 或 小根堆 ,而將任意節點不小于其子節點的堆叫做 最大堆 或 大根堆 。常見的堆有二叉堆、左傾堆、斜堆、二項堆、斐波那契堆等等。