#include <iostream.h> #include <conio.h> const max_length=10; class Queue { private: int queue[max_length]; int rear; int front; public: Queue( ); void Delete( ); void Insert( ); void print_queue( ); void show_working( ); }; /*************************************************************************///-------------------------- Queue( ) ---------------------------------///*************************************************************************/void Queue::Queue( ) { rear=-1; front=-1; for(int count=0;count<max_length;count++) queue[count]=0; } /*************************************************************************///------------------------------ Insert( ) ----------------------------///*************************************************************************/void Queue::Insert( ) { int item; cout<<"\n\n\n\n\n\t Enter value to insert into the Queue : "; cin>>item; if((rear==front-1) || (front==0 && rear==max_length-1)) cout<<"\n\n\t *** Error : Queue is full. \n"<<endl; elseif(rear==-1 && front==-1) { rear++; queue[rear]=item; front=rear; cout<<"\n\n\t *** "<<item<<" is inserted into the Queue."<<endl; } elseif(rear==max_length-1 && front!=0) { rear=0; queue[rear]=item; cout<<"\n\n\t *** "<<item<<" is inserted into the Queue."<<endl; } else { rear++; queue[rear]=item; cout<<"\n\n\t *** "<<item<<" is inserted into the Queue."<<endl; } cout<<"\n\n\n\t\t Pres any key to return to Menu. "; getch( ); } /*************************************************************************///------------------------------ Delete( ) ----------------------------///*************************************************************************/void Queue::Delete( ) { if(rear==-1 && front==-1) cout<<"\n\n\n\t *** Error : Queue is empty. \n"<<endl; else { cout<<"\n\n\n\t *** "<<queue[front]<<" is deleted from the Queue."<<endl; queue[front]=0; if(front==rear) { front=-1; rear=-1; } elseif(front==max_length-1) front=0; else front++; } cout<<"\n\n\n\t\t Pres any key to return to Menu. "; getch( ); } /*************************************************************************///--------------------------- print_queue( ) --------------------------///*************************************************************************/void Queue::print_queue( ) { if(front!=-1 && rear!=-1) { cout<<"\n\n\n\n\n\t Values inserted into the Queue are : \n"<<endl; for(int count=0;count<max_length;count++) cout<<"\t Stack ["<<count<<"] = "<<queue[count]<<endl; } else cout<<"\n\n\n\n\n\t *** Nothing to show. "<<endl; cout<<"\n\n\n\t\t Pres any key to return to Menu. "; getch( ); } /*************************************************************************///------------------------- show_working( ) ---------------------------///*************************************************************************/void Queue::show_working( ) { char Key=NULL; do { clrscr( ); gotoxy(5,5); cout<<"********** Implementation of Array as Circular Queue **********"<<endl; gotoxy(10,8); cout<<"Select one of the listed operation :"<<endl; gotoxy(15,10); cout<<"- Press \'I\' to Insert a value"<<endl; gotoxy(15,12); cout<<"- Press \'D\' to Delete a value"<<endl; gotoxy(15,14); cout<<"- Press \'P\' to Print the values"<<endl; gotoxy(15,16); cout<<"- Press \'E\' to Exit"<<endl; Input: gotoxy(10,20); cout<<" "; gotoxy(10,20); cout<<"Enter your Choice : "; Key=getche( ); if(int(Key)==27 || Key=='e' || Key=='E') break; elseif(Key=='i' || Key=='I') Insert( ); elseif(Key=='d' || Key=='D') Delete( ); elseif(Key=='p' || Key=='P') print_queue( ); elsegoto Input; } while(1); } int main( ) { Queue obj; obj.show_working( ); return 0; }
No comments:
Post a Comment