0% found this document useful (0 votes)
59 views33 pages

Binomial Heaps

Binomial heaps are a data structure that support insert, remove minimum, and meld operations in O(1) amortized time. They are represented as a circular linked list of min-heap trees. The remove minimum operation takes O(n) time in the worst case by removing a min tree, reinserting its subtrees, and updating the minimum pointer. This can be improved to O(log n) amortized time by pairwise combining min trees of equal degree during reinsertion.

Uploaded by

Random
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views33 pages

Binomial Heaps

Binomial heaps are a data structure that support insert, remove minimum, and meld operations in O(1) amortized time. They are represented as a circular linked list of min-heap trees. The remove minimum operation takes O(n) time in the worst case by removing a min tree, reinserting its subtrees, and updating the minimum pointer. This can be improved to O(log n) amortized time by pairwise combining min trees of equal degree during reinsertion.

Uploaded by

Random
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

Binomial Heaps

Leftist Binomial heaps


trees Actual Amortized
Insert O(log n) O(1) O(1)
Remove min (or O(log n) O(n) O(log n)
max)
Meld O(log n) O(1) O(1)
Min Binomial Heap
• Collection of min trees.
2 1
4

4 5 9 7 3

6 7 6 8
5
5
8
6 9
9
Node Structure
• Degree
 Number of children.
• Child
 Pointer to one of the node’s children.
 Null iff node has no child.
• Sibling
 Used for circular linked list of siblings.
• Data
Binomial Heap Representation
• Circular linked list of min trees. A
2 1
4

4 5 9 7 3

6 7 6 8
5
5
8
6 9 Degree fields
9 not shown.
Insert 10
• Add a new single-node min tree to the collection.
• Update min-element pointer if necessary.
A
2 1
4

4 5 9 7 3

10
6 7 6 8
5
5
8
6 9
9
Meld
1 4
5 7

B 7 3
9
A
8

• Combine the 2 top-level circular lists.


• Set min-element pointer.
Meld
1 4
5 7

C 7 3
9

8
Remove Min

• Empty binomial heap => fail.


Nonempty Binomial Heap
• Remove a min tree.
• Reinsert subtrees of removed min tree.
• Update binomial heap pointer. A
2 1
4

4 5 9 7 3

10
6 7 6 8
5
5
8
6 9
9
Remove Min Tree
• Same as remove a node from a circular list.

a b dc d e

• No next node => empty after remove.


• Otherwise, copy next-node data and remove
next node.
Reinsert Subtrees

1 4
5 7

7 3
9
A B

8 subtrees

• Combine the 2 top-level circular lists.


 Same as in meld operation.
Update Binomial Heap Pointer

• Must examine roots of all min trees to


determine the min value.
Complexity Of Remove Min

• Remove a min tree.


 O(1).
• Reinsert subtrees.
 O(1).
• Update binomial heap pointer.
 O(s), where s is the number of min trees in final top-level
circular list.
 s = O(n).
• Overall complexity of remove min is O(n).
Enhanced Remove Min

• During reinsert of subtrees, pairwise combine


min trees whose roots have equal degree.
• This is essential to get stated amortized bounds
and so is the correct way to remove from a
Binomial heap.
• The simple remove min described earlier does
not result in the desired amortized complexity
and so is incorrect for Binomial heaps.
Pairwise Combine
2 1
4

4 5 9 7 3

10
6 7 6 8
5
5
8
6 9
9

Examine the s = 7 trees in some order.


Determined by the 2 top-level circular lists.
Pairwise Combine
2 4 10 5 6 1 5

4 9 9 3 9
5 7

6 7 6 8

8
4
3
tree table 2
1
0
Use a table to keep track of trees by degree.
Pairwise Combine
2 4 10 5 6 1 5

4 9 9 3 9
5 7

6 7 6 8

8
4
3
tree table 2
1
0
Pairwise Combine
2 4 10 5 6 1 5

4 9 9 3 9
5 7

6 7 6 8

8
4
3
tree table 2
1
Combine 2 min trees of degree 0. 0
Make the one with larger root a subtree of other.
Pairwise Combine
2 4 5 6 1 5

4 9 10 9 3 9
5 7

6 7 6 8

8
4
3
tree table 2
1
Update tree table. 0
Pairwise Combine
2 4 5 6 1 5

4 9 10 9 3 9
5 7

6 7 6 8

8
4
3
tree table 2
1
Combine 2 min trees of degree 1. 0
Make the one with larger root a subtree of other.
Pairwise Combine
2 4 6 1 5

4 9 10 5 3 9
5 7

6 7 6 9 8

8
4
3
tree table 2
1
Update tree table. 0
Pairwise Combine
2 4 6 1 5

4 9 10 5 3 9
5 7

6 7 6 9 8

8
4
3
tree table 2
1
0
Pairwise Combine
2 4 6 1 5

4 9 10 5 3 9
5 7

6 7 6 9 8

8
4
3
tree table 2
1
Combine 2 min trees of degree 2. 0
Make the one with larger root a subtree of other.
Pairwise Combine
2 6 1 5

4 9 3 9
5 4 7

6 7 6 8
10 5

8 9
4
3
tree table 2
1
Combine 2 min trees of degree 3. 0
Make the one with larger root a subtree of other.
Pairwise Combine
1 6 5

4 7 3
2 9

9 10 5 8
4 5

6 7 9
6
4
3
8 tree table 2
1
0
Update tree table.
Pairwise Combine
1 6 5

4 7 3
2 9

9 10 5 8
4 5

6 7 9
6
4
3
8 tree table 2
1
0
Pairwise Combine
1 6 5

4 7 3
2 9

9 10 5 8
4 5

6 7 9
6
4
3
8 tree table 2
1
0
Create circular list of remaining trees.
Complexity Of Remove Min

• Create and initialize tree table.


 O(MaxDegree).
 Done once only.
• Examine s min trees and pairwise combine.
 O(s).
• Collect remaining trees from tree table, reset table
entries to null, and set binomial heap pointer.
 O(MaxDegree).
• Overall complexity of remove min.
 O(MaxDegree + s).
Binomial Trees

• Bk is degree k binomial tree.


B0
• Bk , k > 0, is:


B2 Bk-1
B0 B1
Examples

B0 B1 B2 B3
Number Of Nodes In Bk
• Nk = number of nodes in Bk.
B0 N0 = 1
• Bk , k > 0, is:


B2 Bk-1
B0 B1

• Nk = N0 + N1 + N2 + …+ Nk-1 + 1
= 2k.
Equivalent Definition
• Bk , k > 0, is two Bk-1s.
• One of these is a subtree of the other.

B1 B2 B3
Nk And MaxDegree

• N0 = 1
• Nk = 2Nk-1
= 2k.
• If we start with zero elements and perform
operations as described, then all trees in all
binomial heaps are binomial trees.
• So, MaxDegree = O(log n).

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy