Question: I want it in C. Write the implementation file, priority queue.c, for the interface in the given header file priority queue.h. Turn in your priority


I want it in C.
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 PRIORITY QUEUE H t define 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 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 and the data is the value The queue could hold 21,10 and 35 5 so that the 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. data item is simply a value we are storing in the queue. Postcondition returns SUCCESS if the item was successfully added to the queue and FAILURE otherwise Status priority queue insert PRIORITY QUEUE hQueue, nt 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 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 status to SUCCESS if there is at least one item in the queue and FAILURE otherwise If status is passed in as NULL then the status value is ignored for this run of the function
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
