#include "queue.h" namespace seq { class DynamicArray: public Queue { public: bool empty() const { return (this->logical_size == 0); } // test whether the array is empty size_t size() const { return this->logical_size; } // return the logical size (number of items in the array) void enqueue(int element); int dequeue(); void clear(); // remove all the items from the array ~DynamicArray() { this->clear(); } private: // this is a static C/C++ array containing the actual data // it is owned by the dynamic array int* values = nullptr; size_t logical_size = 0; // how many data items are we actually storing? size_t capacity = 0; // how much memory did we allocate? void resize(size_t new_capacity); // shift to static array with increased/decreased capacity }; }