Question: / / ABQ.h #include using namespace std; template class ABQ { private: static double scale; unsigned int size; unsigned int capacity; T * data; void
ABQ.h
#include
using namespace std;
template
class ABQ
private:
static double scale;
unsigned int size;
unsigned int capacity;
T data;
void resizedouble scale;
public:
ABQ;
ABQint capacity;
ABQconst ABQ& d;
ABQ& operatorconst ABQ& d;
~ABQ;
void enqueueT data;
T dequeue;
T peek;
unsigned int getSize;
unsigned int getMaxCapacity;
T getData;
;
template
double ABQ::scale ;
template
ABQ::ABQ
capacity ;
size ;
data new Tcapacity;
template
ABQ::ABQint capacity
thiscapacity capacity;
size ;
data new Tthiscapacity;
template
ABQ::ABQconst ABQ &d
capacity dcapacity;
size dsize;
data new Tcapacity;
for int i ; i size; i
datai ddatai;
template
ABQ& ABQ::operatorconst ABQ& d
if this &d
delete data;
capacity dcapacity;
size dsize;
data new Tcapacity;
for int i ; i size; i
datai ddatai;
return this;
template
ABQ::~ABQ
delete data;
template
void ABQ::enqueueT data
if size capacity
resizescale;
thisdatasize data;
size;
template
T ABQ::dequeue
if size
throw runtimeerrorUnable dequeue from an empty queue";
T item data;
for sizet i ; i size ; i
datai datai ;
size;
if capacity
if doublesize capacitydouble scale
resizedouble scale;
return item;
template
T ABQ::peek
if size
throw runtimeerrorUnable to dequeue from an empty queue";
return data;
template
unsigned int ABQ::getSize
return size;
template
unsigned int ABQ::getMaxCapacity
return capacity;
template
T ABQ::getData
return data;
template
void ABQ::resizedouble scale
T newData new Tintcapacity scale;
for sizet i ; i size; i
newDatai datai;
capacity capacity scale;
delete data;
data newData;
ABSh
#include
using namespace std;
template
class ABS
private:
static double scale;
unsigned int size;
unsigned int capacity;
T data;
void resizedouble scale;
public:
ABS;
ABSint capacity;
ABSconst ABS& d;
ABS& operatorconst ABS& d;
~ABS;
void pushT data;
T pop;
T peek;
unsigned int getSize;
unsigned int getMaxCapacity;
T getData;
;
template
double ABS::scale ;
template
ABS::ABS
capacity ;
size ;
data new Tcapacity;
template
ABS::ABSint capacity
thiscapacity capacity;
size ;
data new Tthiscapacity;
template
ABS::ABSconst ABS& d
capacity dcapacity;
size dsize;
data new Tcapacity;
for int i ; i size; i
datai ddatai;
template
ABS& ABS ::operatorconst ABS& d
if this &d
delete data;
capacity dcapacity;
size dsize;
data new Tcapacity;
for sizet i ; i size; i
datai ddatai;
return this;
template
ABS::~ABS
delete data;
template
void ABS::pushT data
if size capacity
resizescale;
thisdatasize data;
size;
template
T ABS::pop
if size
throw runtimeerrorUnable to pop from empty stack";
T item datasize ;
size;
if capacity
if doublesize capacitydouble scale
resizedouble scale;
return item;
template
T ABS::peek
if size
throw runtimeerrorUnable to peek from an empty stack";
T item datasize ;
return item;
template
unsigned int ABS::getSize
return size;
template
unsigned int ABS::getMaxCapacity
return capacity;
template
T ABS::getData
return data;
template
void ABS::resizedouble scale
T newData new Tintcapacity scale;
for sizet i ; i size; i
newDatai datai;
capacity capacity scale;
delete data;
data newData;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
