is a particular kind of abstract data type or collection
in which the entities in the collection are kept in order and the
principal (or only) operations on the collection are the addition of
entities to the rear terminal position and removal of entities from the
front terminal position.
/****************************************************************************** Author: Sunil Kumar Website: www.techdoon.com Description: Queues implementaion using link list in c++ *******************************************************************************/ #include<iostream> #include<cstdlib> using namespace std; void delet(int*); void inser(int*); class queue{ private: int *a;//array pointer int n,p,front, rear;/*n-total size allocated, p-number of items inseted by user*/ public: queue()//constructor to initialize the variables { front=0; rear=0; } ~queue(); void delet();//for deletion of elements from que void inser(); //inserting elements to the que void getElemets(); //menu for user and memory allocation }; queue::~queue() { delete a; } int main() //program main function { queue obj; obj.getElemets(); cin.get(); //pause screen return 0; } void queue::inser() //inserting item to the que { //scan item int item,r; cout<<"\nITEM: "; cin>>item; //find rear to be insert if(front==1&&rear==n)//queuse is full { cout<<"OVERFLOW"; } else{ if(front==0) //queuse is empty { front=1; rear=1; } else if(rear==n&&front!=1) { rear=1; } else { rear++; } a[rear]=item; } } void queue::delet() { if(front==0)cout<<"UNDERFLOW.";// queuse is enpty else { cout<<"ITEM="<<a[front]; if(front==rear) { front=0; rear=0; } else if(front==n) { front=1; } else { front++; } } } void queue::getElemets() { int ch; //except choice from menu cout<<"Enter number of item to be insert:"; cin>>p;//number item user wants to enter n=p*2; //double size of number od elements a=new int(p*2); //arrar memory allocation cout<<"\nEnter Items:\n"; for(int i=1;i<=p;i++)cin>>a[i]; //scanning elements from user front=1; rear=p; while(1)//infinite loop { cout<<"\n1.INSERT.\n2.DELETE.\n0.EXIT."; cin>>ch; switch(ch) { case 1: inser(); break; case 2: delet(); break; case 0: exit(0); default: cout<<"INVALID"; } } }
0 comments:
Post a Comment