Question: Please write in C language, thank you. Write the implementation file, priority queue.c, for the interface in the given header file, priority queue.h. Turn in

Please write in C language, thank you.

Please write in C language, thank you. Write the implementation file, priorityqueue.c, for the interface in the given header file, priority queue.h. Turn

Write the implementation file, priority queue.c, for the interface in the given header file, priority queue.h. Turn in your priority_queue.c file and a suitable main program, main.c, that tests the opaque object. priority queue.h is attached as a file to this assignment but is also listed here for your convenience. Your implementation file should implement the priority queue using a heap data structure. Submissions that implement the priority queue without using a heap will not receive any credit. #ifndef #define PRIORITY-QUEUE-H PRIORITY-QUEUE-H enum status FAILURE, SUCCESS}; typedef enum status Status; enum boolean FALSE, TRUE ; typedef enum boolean Boolean typedef void* PRIORITY QUEUE; //Precondition: Creates an empty priority queue that can store integer data items /I with different integer priority. Higher // integer values indicate higher priority in the queue. For example, consider the // priority and the data value to be key-value pairs where the priority is the key /I and the data is the value. The queue could hold 21,10 and 35, 5 so that the /I first item to be removed from the queue would be the data value 5 because // it has higher priority (35) than the data value 10 which only has (21) //Postcondition: Returns the handle to an empty priority queue. PRIORITY QUEUE priority_queue_init_default(void); //Precondition: hQueue is a handle to a valid priority queue opaque object // Higher priority_level values indicate higher priority in the queue /I data_item is simply a value we are storing in the queue. //Postcondition: returns SUCCESS if the item was successfully added to the queue /I and FAILURE otherwise Status priority_queue_insert (PRIORITY QUEUE hQueue, int priority_level, int data_item); //Precondition: hQueue is a handle to a valid priority queue opaque object. //Postcondition: returns SUCCESS if the highest priority item was removed from the queue /I and FAILURE if the queue was empty Status priority_queue_service(PRIORITY QUEUE hQueue); //Precondition: hQueue is a handle to a valid priority queue opaque object. //Postcondition: returns a copy of the data value for the // highest priority item in the queue. Sets the variable at the address // referred to in pStatus to SUCCESS if there is // at least one item in the queue and FAILURE otherwise. If pStatus is // passed in as NULL then the status value is ignored for this run of the function int priority_queue_front (PRIORITY QUEUE hQueue, Status* pStatus); //Precondition: hQueue is a handle to a valid priority queue opaque object. //Postcondition: returns TRUE if the priority_queue is empty and FALSE otherwise

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!