Advertisement
JoshuaNHardison

stack.h

Oct 16th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. #ifndef STACK_H
  2. #define STACK_H
  3.  
  4. #include<iostream>
  5. using namespace std;
  6.  
  7. template <class T>
  8. class Stack
  9. {
  10.     private:
  11.         int size, top;
  12.         T s_ptr;
  13.     public:
  14.         Stack(int);
  15.         ~Stack();
  16.         void push(T val);
  17.         T peek();
  18.         T pop();
  19.         bool isEmpty();
  20.        
  21. };
  22.  
  23. template <class T>
  24. Stack<T>::Stack(int maxsize)
  25. {
  26.     size = maxsize;
  27.     top = -1;
  28.     s_ptr = new T(size);
  29. }
  30.  
  31. template <class T>
  32. Stack<T>::~Stack()
  33. {
  34.     //delete
  35. }
  36.  
  37. template <class T>
  38. void Stack<T>::push(T val)
  39. {
  40.     if(!isfull())
  41.     {
  42.         s_ptr[++top] = val;
  43.     }
  44.     else
  45.     {
  46.         cout << "\n\nStack is full" << endl;
  47.     }
  48. }
  49.  
  50.  
  51. template <class T>
  52. T Stack<T>::pop()
  53. {
  54.     if(!isEmpty())
  55.     {
  56.         return s_ptr[top--];
  57.     }
  58.     else
  59.     {
  60.         cout << "\n\nStack is empty" << endl;
  61.     }
  62. }
  63.  
  64. template <class T>
  65. T Stack<T>::peek()
  66. {
  67.     if (!isEmpty())
  68.         return s_ptr[top];
  69.     else
  70.         exit(EXIT_FAILURE);
  71. }
  72.  
  73. template <class T>
  74. bool Stack<T>::isEmpty()
  75. {
  76.     return top == -1;
  77. }
  78.  
  79. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement