Mega Code Archive

 
Categories / C++ Tutorial / Template
 

Generic Queue

#include<iostream.h> #include<iomanip.h> #include<ctype.h> template<class Type> class queue { private:    Type size;    Type start;    Type end;    Type *data; public:     queue()     {       size=20;       start=end=0;       data=new Type[size];     }     queue(Type n)     {       size=n;       start=end=0;       data=new Type[size];     }        ~queue()        {          delete data;        }     void put(Type value)     {       if((start+1)size==end)       {        cout<<"\n***Queue is full!***\n";        return ;        }        data[start]=value;        start=(start+1)size;        cout<<"You have put a data into the queue!\n";        return;     }     Type get()     {       Type value;       if(start==end)       {         cout<<"\n***Queue is empty!***\n";         return(0);       }       value=data[end];       end=(end+1)size;       cout<<"\n Get "<<value<<" from the queue!\n";       return(value);     }     void clear()     {       start=end;       cout<<"\n ***Queue is empty!***\n";     }     void ShowQueue()     {        if(start==end)        {         cout<<"\n The queue has no data!\n";         return;        }        Type i;        cout<<"\n The content of queue:\n";        for(i=end;i!=start;i=((i+1)size))           cout<<setw(5)<<data[i];        cout<<"\n\n";     } }; main() {   queue<char> ss(5);   char value = 'a';   ss.put(value);   ss.put('b');   value=ss.get();   ss.clear();   ss.ShowQueue(); } You have put a data into the queue! You have put a data into the queue! Get a from the queue! ***Queue is empty!*** The queue has no data!