Question: 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

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.

Write your own class that implements a priority queue using a maximal

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.

HeapQueue -heap: int -size: int bottom: int +HeapQueue(s: int) HeapQueue(): tenqueue(i: int): void +dequeue): void +top(): int -ReHeapUp(): void -ReHeapDown): void

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!