VOOZH about

URL: https://www.geeksforgeeks.org/dsa/implementation-binomial-heap/

⇱ Implementation of Binomial Heap - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Implementation of Binomial Heap

Last Updated : 4 Apr, 2024

In previous article, we have discussed about the concepts related to Binomial heap. 

Examples Binomial Heap:

12------------10--------------------20
/ \ / | \
15 50 70 50 40
| / | |
30 80 85 65
|
100
A Binomial Heap with 13 nodes. It is a collection of 3
Binomial Trees of orders 0, 2 and 3 from left to right.

10--------------------20
/ \ / | \
15 50 70 50 40
| / | |
30 80 85 65
|
100

In this article, implementation of Binomial Heap is discussed. Following functions implemented :

  1. insert(H, k): Inserts a key ‘k’ to Binomial Heap ‘H’. This operation first creates a Binomial Heap with single key ‘k’, then calls union on H and the new Binomial heap.
  2. getMin(H): A simple way to getMin() is to traverse the list of root of Binomial Trees and return the minimum key. This implementation requires O(Logn) time. It can be optimized to O(1) by maintaining a pointer to minimum key root.
  3. extractMin(H): This operation also uses union(). We first call getMin() to find the minimum key Binomial Tree, then we remove the node and create a new Binomial Heap by connecting all subtrees of the removed minimum node. Finally we call union() on H and the newly created Binomial Heap. This operation requires O(Logn) time.

Implementation:


Output
Heap elements after insertion:
30 10 20 
Minimum element of heap 10
Heap after deletion of minimum element
20 30 
Comment
Article Tags: