堆序列怎麼判斷

來源:生活大全幫 5.12K

堆序列怎麼判斷

要將這個序列看成數組型的二叉樹,二叉樹上端父節點的數字要比下端左右子節點的數字大或者小,那麼這個序列就可以看作是一個堆。

n個元素的序列{k1,k2,ki,…,kn}當且僅當滿足上述關係時,稱之為堆。

堆是計算機科學中一類特殊的數據結構的統稱,我們通常將堆看成一棵樹的數組對象。

堆分為最大堆和最小堆,兩者的差別在於節點的排序方式不同。在最大堆中,父節點的數值要比每一個子節點的數值都要大。在最小堆中,父節點的數值要比每一個子節點的數值都要小,這就是堆的屬性,並且這個屬性對堆中的每一個節點都成立。根據這一個屬性,我們就可以瞭解到,在最大堆中總是將其中的最大值放在二叉樹的根節點,而對於最小堆,根節點的數值是二叉樹中的最小值。堆的屬性特別的有用,所以堆常常被當做優先隊列使用,因為可以快速的訪問到“最重要”的元素。

注意:堆的根節點中放置的是最大或者最小元素,但是其它節點的排序是未知的,唯一能夠保證的是最小的元素是一個葉節點,但是不確定是哪一個。

熱門標籤