Question: #include using namespace std; template class ArrayQueue { enum { DEF_CAPACITY = 100 }; // default queue capacity public: ArrayQueue(int cap = DEF_CAPACITY); // constructor

 #include using namespace std; template class ArrayQueue { enum { DEF_CAPACITY

= 100 }; // default queue capacity public: ArrayQueue(int cap = DEF_CAPACITY);

#include

using namespace std;

template

class ArrayQueue {

enum { DEF_CAPACITY = 100 }; // default queue capacity

public:

ArrayQueue(int cap = DEF_CAPACITY); // constructor from capacity

int size() const; // number of items in the stack

bool empty() const; // is the stack empty?

const E& front() const; // get the top element

void enqueue(const E& e); // add to back of queue

void dequeue(); // remove from front of queue

void printAll(); // print all elements on stack to cout

private: // member data

E* Q; // array of queue elements

int capacity; // queue capacity

int f; // index of the front of the queue

int r; // index of the rear of the queue

int n; // number of elements

};

template ArrayQueue::ArrayQueue(int cap)

: Q(new E[cap]), capacity(cap), f(0), r(0), n(0) { } // constructor from capacity

template int ArrayQueue::size() const

{

return n;

} // number of items in the queue

template bool ArrayQueue::empty() const

{

return (n == 0);

} // is the stack empty?

template // return element at front of queue

const E& ArrayQueue::front() const {

if (empty()) throw length_error("front of empty queue");

return Q[f];

}

template // insert element to back of queue

void ArrayQueue::enqueue(const E& e) {

if (size() == capacity) throw length_error("enqueue to full queue");

Q[r] = e;

r = (r + 1) % capacity;

n++;

}

template // remove element at front of queue

void ArrayQueue::dequeue() {

if (empty()) throw length_error("enqueue from empty queue");

f = (f + 1) % capacity;

n--;

}

// print all elements on queue

template

void ArrayQueue::printAll() {

if (empty()) throw length_error("Empty queue");

cout

int front = f;

for (int i = 0; i

cout

front = (front + 1) % capacity;

}

cout

Modify the ArrayQueue class in the following code to make the array queue capacity extendable Assuming the default queue capacity is 5

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!