Advertisement
Marcvs7

stack

Aug 26th, 2013
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. template<typename T> class Stack{
  2. public:
  3.     Stack(int = 10);
  4.     ~Stack();
  5.     bool push(const T&);
  6.     bool pop(T&);
  7.     bool isEmpty() const;
  8.     bool isFull() const;
  9. private:
  10.     int size;
  11.     int top;
  12.     T *stackPtr;
  13. };
  14.  
  15. template<typename T> Stack<T>::Stack(int s){
  16.     size = ( s > 0? s : 10);
  17.     top = -1;
  18.     stackPtr = new T[size];
  19. }ì
  20.  
  21. template<typename T> Stack<T>::~Stack(){
  22.     delete [] stackPtr;
  23. }
  24.  
  25. template<typename T> bool Stack<T>::push(const T &pushElem){
  26.     if( !isFull() ){
  27.         stackPtr[++top] = pushElem;
  28.         return true;
  29.     }
  30.     return false;
  31. }
  32.  
  33. template<typename T> bool Stack<T>::pop(T &popElem){
  34.     if( !isEmpty() ){
  35.         popElem = stackPtr[top--];
  36.         return true;
  37.     }
  38.     return false;
  39. }
  40.  
  41. template<typename T> bool Stack<T>::isEmpty() const{
  42.     return top == -1;
  43. }
  44.  
  45.  
  46. template<typename T> bool Stack<T>::isFull() const{
  47.     return top == size;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement