In C++ STL, there is priority_queue that can directly be used to implement Max Heap. In order to fully understand the code, make sure you are familiar with following concepts in C++
” See below example.
30 20 10 5 1
Since elements are printed in descending order, we have a max heap by default.
How to implement Min Heap?
priority_queue supports a constructor that requires two extra arguments to make it min heap.
priority_queue <Type, vector<Type>, ComparisonType > min_heap;
`The third parameter, ‘ComparisonType’ can either be a function or functor (aka function object) that must have bool as return-type and must have 2 arguments.
Below is an example for integers.
1 5 10 20 30
How to make a min heap of user defined class?
Let us consider below example where we build a min heap of 2 D points ordered by X axis.
(1, 5) (2, 1) (10, 2)
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details
- K’th Least Element in a Min-Heap
- Implement Your Own sizeof
- Implement your own itoa()
- How to implement our own Vector Class in C++?
- Using class to implement Vector Quantities in C++
- How to implement user defined Shared Pointers in C++
- Program to implement Separate Chaining in C++ STL without the use of pointers
- Implement your own tail (Read last n lines of a huge file)
- Heap in C++ STL | make_heap(), push_heap(), pop_heap(), sort_heap(), is_heap, is_heap_until()
- Design and Implement Special Stack Data Structure | Added Space Optimized Version
- Heap overflow and Stack overflow
- Find the K closest points to origin using Priority Queue
- Code Bloating in C++ with Examples
- Implementation of lower_bound and upper_bound on Set of Pairs in C++