C++ Programming (8)
Write your own class that implements a priority queue using a maximal heap. Use the following UML diagram and attribute descriptions. Place all the code for the class in a single header file named HeapQueue.h.
Class Attributes:
- heap – a pointer that holds a dynamically allocated array of integers.
- size – stores the size of the array.
- bottom – keeps track of the bottom of the heap.
- constructor – accepts an integer as it’s only argument and dynamically allocates an array with that many elements, stores the argument in size, and initializes bottom to -1. Address of the new array is stored in heap.
- destructor – deallocates the array
- enqueue – if there’s enough free space in the heap, adds it’s argument to the heap. Throws an exception otherwise.
- dequeue – if the heap isn’t empty, removes the top of the heap from the heap. Throws an exception otherwise.
- top – returns a copy of the value on the top of the heap, doesn’t change the heap in any way. Throws an exception if the heap is empty.
- ReHeapUp – called by enqueue to rebuild the heap.
- ReHeapDown – called by dequeue to rebuild the heap.
Notes:
- The heap is empty if bottom is -1.
- The top of the heap is always in element 0.
- None of the class methods interact with the user in any way (no cin or cout statements).
- Implement a maximal heap, meaning the top of the heap always has the biggest value in the heap.
- Your class must use the listed attributes, and only those attributes.
- You can choose whatever type of exception you want to throw.
- The methods don’t catch them, they just throw them.
- Be sure to include preprocessor guards.
- Be sure to mark accessors const.
Submission Instructions:
- Submit your class in it’s own header file named HeapQueue.h.
"You need a similar assignment done from scratch? Our qualified writers will help you with a guaranteed AI-free & plagiarism-free A+ quality paper, Confidentiality, Timely delivery & Livechat/phone Support.
Discount Code: CIPD30
Click ORDER NOW..


