subject

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
#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);< br /> //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_QUEU E 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
// and FAILURE if the queue was empty.
Status priority_queue_service(PRIORITY_QUE UE 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.
Boolean priority_queue_is_empty(PRIORITY_QU EUE hQueue);
//Precondition: phQueue is a pointer to the handle of a valid priority queue opaque object.
//Postcondition: The opaque object will be free'd from memory and the handle pointed to
// by phQueue will be set to NULL.
void priority_queue_destroy(PRIORITY_QUE UE* phQueue);
#endif

ansver
Answers: 3

Another question on Computers and Technology

question
Computers and Technology, 23.06.2019 01:10
Problem 1 - hashing we would like to use initials to locate an individual. for instance, mel should locate the person mark e. lehr. note: this is all upper case. generate a hash function for the above using the numbers on your telephone. you know, each letter has a number associated with it, so examine your telephone keypad. generate 512 random 3 letter initials and take statistics on a linked list array size 512 to hold this information report how many have no elements, 1 element, 2 elements, does this agree with the hashing statistics distribution?
Answers: 1
question
Computers and Technology, 23.06.2019 17:00
What does the faves button do? a. users mark a web page as a favorite b. leads other readers to favor a specific page c. readers sort and align their favicons, or favorite icons d. leads users to a message board where they can post questions
Answers: 1
question
Computers and Technology, 23.06.2019 19:00
Acompany is hiring professionals for web designing. the firm is small with few resources. they want employees who possess problem-solving skills and can independently carry out responsibilities. which kind of employee should they select?
Answers: 2
question
Computers and Technology, 23.06.2019 20:00
What multimedia system creates an immersive, real-life experience that the user can interact with?
Answers: 1
You know the right answer?
Write the implementation file, priority_queue. c, for the interface in the given header file, priori...
Questions
question
Mathematics, 20.09.2019 00:50
Questions on the website: 13722363