C++ Programming (8)

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..

order custom paper