Assignment 13
Assignment 13
class doubleEndedQueue{
private:
int queue[100];
int front;
int rear;
int size;
public:
doubleEndedQueue(){
front=-1;
rear=-1;
size=0;
}
void enqueueFront(int x){
if(size==0){
front=0;
rear=0;
queue[front]=x;
size++;
}
else{
if(front==0){
cout<<"Queue is full"<<endl;
}
else{
front--;
queue[front]=x;
size++;
}
}
}
void enqueueRear(int x){
if(size==0){
front=0;
rear=0;
queue[rear]=x;
size++;
}
else{
if(rear==99){
cout<<"Queue is full"<<endl;
}
else{
rear++;
queue[rear]=x;
size++;
}
}
}
void dequeueFront(){
if(size==0){
cout<<"Queue is empty"<<endl;
}
else{
if(front==rear){
front=-1;
rear=-1;
size--;
}
else{
front++;
size--;
}
}
}
void dequeueRear(){
if(size==0){
cout<<"Queue is empty"<<endl;
}
else{
if(front==rear){
front=-1;
rear=-1;
size--;
}
else{
rear--;
size--;
}
}
}
void display(){
if(size==0){
cout<<"Queue is empty"<<endl;
}
else{
for(int i=front; i<=rear; i++){
cout<<queue[i]<<" ";
}
cout<<endl;
}
}
};
int main(){
doubleEndedQueue q;
int choice;
cout<<"\nMenu\n";
cout<<"1. Enqueue at front\n";
cout<<"2. Enqueue at rear\n";
cout<<"3. Dequeue at front\n";
cout<<"4. Dequeue at rear\n";
cout<<"5. Display\n";
cout<<"6. Exit\n";
while(1){
cout<<"Enter your choice: ";
cin>>choice;
if(choice==1){
cout<<"Enter the element to enqueue: ";
int x;
cin>>x;
q.enqueueFront(x);
}
else if(choice==2){
cout<<"Enter the element to enqueue: ";
int x;
cin>>x;
q.enqueueRear(x);
}
else if(choice==3){
q.dequeueFront();
}
else if(choice==4){
q.dequeueRear();
}
else if(choice==5){
q.display();
}
else if(choice==6){
break;
}
else{
cout<<"Invalid choice\n";
}
}
}