Question: Write your own class that implements a priority. Use the following UML diagram and attribute descriptions. Place all the code for the class in a

Write your own class that implements a priority. Use the following UML diagram and attribute descriptions. Place all the code for the class in a single header file named PQueue.h. The priority queue should be implemented using a pointer-based singly linked list that is sorted by priority in descending order. Be sure to include preprocessor guards.

Write your own class that implements a priority. Use the following UML

Class Attributes:

Node - a private, nested struct.

name - stores the name of a person in line.

pri - their priority level. Higher integers mean a higher priority.

next - a pointer that holds the memory address of the next node in the list.

head - a Node pointer that stores the memory address of the head node, which is the node containing the highest priority information.

constructor - initializes head to null.

destructor - frees all memory used by the priority queue..

enqueue - accepts an integer (the priority) and a string (the name of the person in line) as it's only arguments. Adds a node containing the arguments into the list, maintaining the correct order. Returns 0 if successful, -1 otherwise.

dequeue - removes the highest priority node from the list. Returns 0 if successful, -1 otherwise. Since the list is always sorted by prioirty in descending order, this means it's always going to be the head node that gets deleted.

front - assigns the name of the highest priority person in the list to it's reference parameter. Returns 0 if successful, -1 otherwise. Failure means -1 is returned and nothing is assigned to the reference parameter.

Make sure to mark accessors const (principle of least priviledge)

Hints:

If your program crashes, you're almost certainly accessing an invalid memory location.

Be sure to include preprocesso guards.

PQueue Node name string pri: int next: Node* head Node* +PQueue): +PQueue() tenqueue(name : string, pri : int): int +dequeue): int +clear): void +front(n : string& ): int

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!