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.

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
Get step-by-step solutions from verified subject matter experts
