Question

Page 3 of 5 based queue - coding question rray-based fine an array-bag ray-based queue template class ArrQueue that uses a on please write them in parts and not the whole code
0 0
Add a comment Improve this question Transcribed image text
Answer #1

/* here in this program as per the question variable back is taken as rear named variable */

/* enqueue member function */

template <class X>
void ArrQueue <X>::enqueue(X item)

{
   if(front==-1)
           {
               front = 0;
           }
          
       rear=(rear+1)%sz;
       items[rear]=item;
cout<<endl<<"Inserted : "<<item<<endl;

}

/* dequeue member function */

template <class X>
X ArrQueue <X>::dequeue()
{
   X element;

element=items[front];
if(front==rear){
front=-1;
rear=-1;
}
else
           {
front=(front+1)%sz;
}
return(element);

}

/* peek Front memeber function */

template <class X>
X ArrQueue <X>::peekFront()
{

   if(front>=0)
   cout<<"peek front element is :"<< items[front];
   else
   cout<<"No peek element in queue";
}

/* isEmpty member function */

template <class X>
void ArrQueue <X>::isEmpty()
{
   if(front==-1)
   {
       cout<<"Circular Queue is empty";
   }
   else
   {
           cout<<"Circular Queue is not empty";
   }
}

/* ArrQueue class with template */

template <class X>
class ArrQueue
{
   X *items; // dynamically allocated array //      
   int capacity;  
   int front;      
   int rear;      
   int count;      
public:
   ArrQueue (int size=sz);   // constructor //  
   X dequeue(); // delete element//
   void enqueue(X x); // insert element //
   X peekFront(); // front element //
   int size(); // count elements //
   void isEmpty(); // check empty or not //
   void display(); // display queue //
};

/* full program */

/* here for better under standing the full program is given, which will help to co relate the above functions and other functions with rest of the program */

/* here in this program as per the question variable back is taken as rear named variable */

#include <iostream>
#include <cstdlib>
using namespace std;

// max size of queue is 20//
#define sz 20

// template class representation of circular queue //
template <class X>
class ArrQueue
{
   X *items; // dynamically allocated array //      
   int capacity;  
   int front;      
   int rear; // as per the question back named variable //
   int count;      
public:
   ArrQueue (int size=sz);   // constructor //  
   X dequeue(); // delete element//
   void enqueue(X x); // insert element //
   X peekFront(); // front element //
   int size(); // count elements //
   void isEmpty(); // check empty or not //
   void display(); // display queue //
};


template <class X>
ArrQueue <X>::ArrQueue(int size)
{
   items = new X[size]; // dynamically allocate in circular array//
   capacity = size;
   front = -1;
   rear = -1;
   count = 0;
}

// return type is X which is integer //
template <class X>
X ArrQueue <X>::dequeue()
{
   X element;

element=items[front];
if(front==rear){
front=-1;
rear=-1;
}
else
           {
front=(front+1)%sz;
}
return(element);

}


template <class X>
void ArrQueue <X>::enqueue(X item)

{

if(front==-1)
           {
               front = 0;
           }
          
      
          rear=(rear+1)%sz;
       items[rear]=item;
cout<<endl<<"Inserted : "<<item<<endl;

  
  
}

template <class X>
void ArrQueue <X>::display()
{
  
   int index;
  
  
if(front==-1)
{
   cout<<"No element is found to be displayed";
           }
           else
           {
          
           cout<<endl<<"Items in the Circular Queue are: \n ";
for(index=front;index!=rear;index=(index+1)%sz)
{
       cout<<items[index]<<" ";
       }

cout<<items[index];
}
  
}


template <class X>
X ArrQueue <X>::peekFront()
{

   if(front>=0)
   cout<<"peek front element is :"<< items[front];
   else
   cout<<"No peek element in queue";
}


template <class X>
int ArrQueue <X>::size()
{
   return count;
}


template <class X>
void ArrQueue <X>::isEmpty()
{
   if(front==-1)
   {
       cout<<"Circular Queue is empty";
   }
   else
   {
           cout<<"Circular Queue is not empty";
   }
}

int main()
{
   // here template X is int //
   ArrQueue <int> q;

   int ch,val,p;
   char ch1;
   do
   {
   cout<<"1.Enque"<<endl;  
   cout<<"2.Deque"<<endl;
   cout<<"3.isEmpty"<<endl;  
   cout<<"4.Peek Front"<<endl;  
   cout<<"5.Display"<<endl;  
   cout<<"Enter the choice:";
   cin>>ch;
   switch(ch)
   {
       case 1:
       cout<<"Enter the item :";
       cin>>val;  
       q.enqueue(val);
       break;
       case 2:
       p=q.dequeue();
       cout<<"Removed element is:"<<p;
       break;
       case 3:
       q.isEmpty();
       break;
       case 4:
       q.peekFront();
       break;
       case 5:
       q.display();
       break;
          
       default: cout<<endl<<"Wrong option[ Enter from 1,2,3,4,5]"<<endl;
   }
   cout<<endl<<"Want to continue[Y/y]:";
   cin>>ch1;
} while(ch1=='Y' || ch1=='y');
  
}

SCREEN SHOT

OUTPUT

Add a comment
Know the answer?
Add Answer to:
please write them in parts and not the whole code Page 3 of 5 based queue...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT