數據結構-堆的定義描述

堆是什麼?

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

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

(左平衡是指,若是一棵平衡樹的最後一層的全部葉子結點都在最靠左邊的位置上,則稱這棵樹是左平衡的。)blog

順序特色

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

堆的分類

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

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

表示方式

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

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

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

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

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

這樣的組織結構或方式對於堆來講很是重要,經過它咱們能迅速定義堆的最後一個結點,最後一個結點指處於樹中最深層最右端的結點。

相關文章
相關標籤/搜索