Question: #ifndef _HEAP_H_ #define _HEAP_H_ #include #include // This class implements an unbounded max heap. // class invariant: heap property is satisfied for a max heap

#ifndef _HEAP_H_ #define _HEAP_H_

#include #include

// This class implements an unbounded max heap.

// class invariant: heap property is satisfied for a max heap

template class heap { public: heap(); // postcondition: empty heap has been created unsigned int size() const; // postcondition: number of elements in a heap has been returned bool is_empty() const; // postcondtion: returned whether the heap is empty void insert (const T& item); // postcondition: item has been added void remove(); // precondition: heap is not empty // postcondition: largest item has been removed from the heap T max() const; // precondition: heap is not empty // postcondition: copy of largest element in the heap has been returned T& max(); // precondition: heap is not empty // postcondition: access to largest element in the heap has been returned private: std::vector v; unsigned int max_child (unsigned int index) const; // precondition: element at index has children // postcondition: index of the larger child has been returned // if there is only 1 child - index of that child has been returned };

#include "heap.template"

#endif // _HEAP_H_

#ifndef _PRIORITY_QUEUE_H #define _PRIORITY_QUEUE_H

#include "heap.h"

template class priority_queue { public: priority_queue(); // postcondition: empty priority_queue has been created void pop(); // precondition: priority_queue is not emtpy // postcondition: highest priority item has been removed void push (const T& item); // postcondition: item has been inserted bool empty () const; // postcondition: returned whether priority queue is empty unsigned int size() const; // postcondition: returned number of items in the priority queue T top() const; // precondition: priority queue is not empty // postcondition: copy of highest priority item has been returned private: heap h; };

#include "priority_queue.template"

#endif // _PRIORITY_QUEUE_H

Using the above heap header and queue header, I need to construct a priority queue using a vector as opposed to a dynamic array. This is based off of question 2 in chapter 11 in Data Structures and Other Objects Using C++

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!