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
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- K’th Least Element in a Min-Heap
- Implement your own itoa()
- Implement Your Own sizeof
- How to implement our own Vector Class in C++?
- Using class to implement Vector Quantities in C++
- Program to implement Separate Chaining in C++ STL without the use of pointers
- How to implement user defined Shared Pointers in C++
- Heap in C++ STL | make_heap(), push_heap(), pop_heap(), sort_heap(), is_heap, is_heap_until()
- Implement your own tail (Read last n lines of a huge file)
- Design and Implement Special Stack Data Structure | Added Space Optimized Version
- Heap overflow and Stack overflow
- Maximum number of unique Triplets such that each element is selected only once
- How to iterate over the elements of an std::tuple in C++
- How to access private/protected method outside a class in C++