C++ Programming (7)
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.
Submission Instructions:
- Submit your class in it’s own header file named PQueue.h. Be sure to include preprocesso guards.
"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..


