C++ Programming (7)

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

order custom paper