In C Write the definitions of the functions to overload the
In C++,
Write the definitions of the functions to overload the assignment operator and copy constructor for the class queueType. Also, write a program to test these operations.
The main function would prompt the user with the following menu options:
1. enqueue
2. dequeue
3. print queue
4. debug queue
5. quit
Solution
#include<iostream>
#include<cstdlib>
#define MAX 50
using namespace std;
class Queue{
private:
int item[MAX];
int rear;
int front;
public:
//copy constructor
Queue( Queue &queue)
{
rear=queue.rear;
front=queue.front;
for(int i=front; i<=rear; i++)
item[i]=queue.item[i];
}
Queue(){
rear = -1;
front = 0;
}
void enqueue(int data){
item[++rear] = data;
}
int dequeue(){
return item[front++];
}
void printQueue(){
if(!this->isEmpty()){
for(int i=front; i<=rear; i++)
cout<<item[i]<<endl;
}else{
cout<<\"Queue Underflow\"<<endl;
}
}
int size(){
return (rear - front + 1);
}
bool isEmpty(){
if(front>rear){
return true;
}else{
return false;
}
}
bool isFull(){
if(this->size()>=MAX){
return true;
}else{
return false;
}
}
void operator = (Queue queue)
{
rear=queue.rear;
front=queue.front;
for(int i=front; i<=rear; i++)
item[i]=queue.item[i];
}
};
int main(){
Queue queue;
int choice, data;
while(1){
cout<<\"\ 1. Enqueue\ 2. Dequeue\ 3. Print Queue \ 4. Quit\";
cout<<\"\ Enter your choice: \";
cin>>choice;
switch(choice){
case 1:
if(!queue.isFull()){
cout<<\"\ Enter data: \";
cin>>data;
queue.enqueue(data);
}else{
cout<<\"Queue is Full\"<<endl;
}
break;
case 2:
if(!queue.isEmpty()){
cout<<\"The data dequeued is :\"<<queue.dequeue();
}else{
cout<<\"Queue is Emtpy\"<<endl;
}
break;
case 3:
queue.printQueue();
break;
case 4:
exit(0);
break;
}
}
return 0;
}

