Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

2. Implement and test a template for generating Queue classes. A queue works lik

ID: 3548488 • Letter: 2

Question

2. Implement and test a template for generating Queue classes. A queue works like a stack, except that insertions  are made at one end of the linear structure and removed from the other end. Solution #include #include #include using namespace std; template class Queue { private: T *items; int rear; int front; int maxQue; int numOfitem; public: Queue() { int n = 10; maxQue = n; front = 0; rear = -1; numOfitem = 0; items = new T[maxQue]; } ~Queue() { delete[] items; } void Enqueue(T newitem) { rear = (rear + 1) % maxQue; items[rear] = newitem; numOfitem++; } void Dequeue() { numOfitem--; front = (front + 1) % maxQue; } int IsQueueEmpty() { return numOfitem == 0; } int IsQueueFull() { return numOfItems >= maxQue; } void display(); }; template void Queue ::display() { if (rear != front) { cout << "Queue Content : "; for (int i = (front) % maxQue;; i = (i + 1) % maxQue) { cout << items[i] << "  "; if (i == rear) { break; } } } } int main() { int num; double n = 10; Queue Q; int newitem; cout << "Test for integer queue" << endl << endl; for (int i = 0; i < 5; i++) { cout << " Enter the New item to insert in queue : "; cin >> newitem; Q.Enqueue(newitem); } cout << endl << endl; Q.display(); cout << endl << endl; cout << "After Dequing one time "; Q.Dequeue(); Q.display(); cout << endl << endl; cout << "After Dequing second time "; Q.Dequeue(); Q.display(); cout << endl; cout << endl << "================================================" << endl; cout << "Test for double queue" << endl << endl; Queue Q1; double newitem1; for (int i = 0; i < 5; i++) { cout << " Enter the New item to insert in queue : "; cin >> newitem1; Q1.Enqueue(newitem1); } cout << endl << endl; Q1.display(); cout << endl << endl; cout << "After Dequing one time "; Q1.Dequeue(); Q1.display(); cout << endl << endl; cout << "After Dequing second time "; Q1.Dequeue(); Q1.display(); cout << endl; cout << endl << "================================================" << endl; system("pause"); return 0; } I need New and different Source code

Explanation / Answer

template <class QueueItem> class Queue {

private:

QueueItem buffer[100];

int head, tail, count;

public:

Queue();

void Insert(QueueItem item);

QueueItem Remove();

int Size();

~Queue();

};


template <class QueueItem>   

Queue<QueueItem>::Queue() : count(0), head(0), tail(0) {}


template <class QueueItem>

void Queue<QueueItem>::Insert(QueueItem item) {

assert(count <100);

buffer[tail] = item;

tail = (tail + 1)% 100;

count++;

}


template <class QueueItem>

QueueItem Queue<QueueItem>::Remove() {

assert(count > 0);

int val = head;

head = (head + 1)%100;

count--;

return buffer[val];

}


template <class QueueItem>

int Queue<QueueItem>::Size() { return count; }


template <class QueueItem>   

Queue<QueueItem>::~Queue() {}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote