數據結構-堆的定義描述


堆是什么?

它是一種樹形組織,使我們能迅速確定包含最大值(或最小值)的結點。

具體來說,堆是一顆左平衡的二叉樹。隨着結點的增加,樹會逐級從左到右增長。

(左平衡是指,如果一棵平衡樹的最后一層的所有葉子結點都在最靠左邊的位置上,則稱這棵樹是左平衡的。)

順序特點

堆狀態的二叉樹是“局部有序”的,任何一個結點與其兄弟結點之間都沒有必然的順序關系,但它與其父子結點有大小順序關系。

堆的分類

最大值堆:子結點比父結點小,根結點是樹中最大的結點。

最小值堆:子結點比父結點大,根結點是樹中最小的結點。

表示方式

對於堆來講,比較好的表示左平衡二叉樹的方式是,將結點通過“層級(水平)遍歷”的方式連續存儲到一個數組中。

假設i是樹中的某一結點,

    其父結點位於(i-1)/2處(忽略小樹部分);

    左子結點位於2i+1處;

    右子結點位於2i+2處;

這樣的組織結構或方式對於堆來說非常重要,通過它我們能迅速定義堆的最后一個結點,最后一個結點指處於樹中最深層最右端的結點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM