二項樹和二項堆(Binomial Heaps)

2021-05-25 14:16:39 字數 495 閱讀 6729

二項樹bk是一種遞迴定義的有序樹。二項樹b0只包含乙個結點。二項樹bk由兩個子樹bk-1連線而成:其中一棵樹的根是另一棵樹的根的最左孩子。

二項樹bk

具有以下性質:

1)共有2的

k次方個結點;

2)樹的高度為k;

3)在深度

i處恰有(上

k,下i)(因此叫二項樹)個結點,其中

i=0,...,k;4

)根的度數為

k,它大於任何其他結點的度數,並且,如果對根的子女從左到右編號為

k-1,

k-2,...,0

,子女i

是子樹bi

的根。證明:略,請參考《演算法導論》第十九章。

二項堆h

由一組二項樹構成,但需要滿足下面兩個性質:1)

h中的每個二項樹遵循最小堆的性質:結點的關鍵字大於等於其父結點的關鍵字。

2)對於任意非負整數k,在

h中至多有一棵二項樹的根具有度數k。

半路演算法之二項樹與二項堆

秉承前文。前面提到過針對稀疏圖時,以二項堆來作為最小優先佇列是更為適宜的。這裡記錄一下學習二項堆的過程。二項堆的名字 於二項樹。二項堆是多個二項樹連在了一起。二項樹的名字 於其bn 棵樹的元素個數為2n 且其深度n處恰有2k 個節點,其性質與二項式非常吻合。此外,它還是一種遞迴定義的有序樹。重點依照...

優先佇列之 二項堆

從以上定義,不難得到下面的結論 二項堆由一組二項樹所構成,這裡的二項樹需要滿足下列條件 1 h中的每個二項樹遵循最小堆的性質。2 對於任意非負整數k,在h中至多有一棵二項樹的根具有度數k。對於性質2,任意高度最多有一棵二項樹,這樣就可以用二項樹的集合唯一地表示任意大小的二項堆,比如13個結點的二項堆...

優先佇列 堆 二項佇列

目錄四 二項佇列的實現 位址 我們知道,左式堆每次操作的時間界是 o logn 二項佇列支援合併 插入 刪除最小值,每次插入的平均時間為常數時間,而最壞時間是 o logn 二項佇列 結構 高度為0的二項樹是一棵單節點樹,例如b0。高度為k的二項樹 b k 通過將一棵二項樹 b 附接到另一棵二項樹 ...