Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <iostream>
  2. #include "Stack.h"
  3.  
  4. using namespace std;
  5.  
  6. template <class T>
  7. Stack<T>::Stack() {
  8.     stack = NULL;
  9.     size = 0;
  10. }
  11.  
  12. template <class T>
  13. Stack<T>::~Stack() {
  14.     delete [] stack;
  15.     stack = NULL;
  16. }
  17.  
  18. template <class T>
  19. void Stack<T>::push(const T& val) {
  20.     size++;
  21.     T *newStack = new T[size];
  22.     for (int i = 0 ; i < size-1 ; i++) {
  23.         newStack[i] = stack[i];
  24.     }
  25.     newStack[size-1] = val;
  26.     delete [] stack;
  27.     stack = newStack;
  28. }
  29.  
  30. template <class T>
  31. T Stack<T>::pop() {
  32.     int retval;
  33.     if (size >= 0) {
  34.         size--;
  35.         T *newStack = new T[size];
  36.         for (int i = 0 ; i < size ; i++) {
  37.             newStack[i] = stack[i];
  38.         }
  39.         retval = stack[size];
  40.         delete [] stack;
  41.         stack = newStack;
  42.     }
  43.     return retval;
  44. }
  45.  
  46. template <class T>
  47. T Stack<T>::peek() const {
  48.     if (size-1 >= 0)
  49.         return stack[size-1];
  50.     return 0;
  51. }
  52.  
  53. template <class T>
  54. int Stack<T>::getSize() const {
  55.     return size;
  56. }
  57.  
  58. /*int main() {
  59.    
  60.     Stack<int> s;
  61.    
  62.     s.push(5);
  63.     cout << s.pop() << endl;
  64.     cout << s.getSize() << endl;
  65.    
  66.     return 0;
  67. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement