Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template<class T>
  6. class StackT {
  7.  
  8. private:
  9.  
  10.     T *data;
  11.     int elements;
  12.     int maxElements;
  13.     void reSize()
  14.     {
  15.         T *data1 = new T[elements + 50];
  16.         for(int i = 0; i<elements;i++ )
  17.         {
  18.             data1[i] = data[i];
  19.         }
  20.         maxElements+=50;
  21.         delete[] data;
  22.         data = data1;
  23.  
  24.     }
  25. public:
  26.     StackT() {
  27.         data = new T[50];
  28.         elements = 0;
  29.         maxElements = 50;
  30.     }
  31.  
  32.     ~StackT() {
  33.         delete[] data;
  34.     }
  35.  
  36.     bool empty() {
  37.         return elements == 0;
  38.     }
  39.  
  40.     T get() {
  41.         if (empty()) return NULL;
  42.  
  43.         T toReturn = data[elements - 1];
  44.         data[elements--] = NULL;
  45.  
  46.         return toReturn;
  47.     }
  48.  
  49.     T front() {
  50.         if (empty()) return NULL;
  51.         return data[elements - 1];
  52.     }
  53.  
  54.     void put(T element) {
  55.         if (elements == maxElements)
  56.             reSize();
  57.         data[elements++] = element;
  58.     }
  59. };
  60.     int main() {
  61.  
  62.     StackT<int> stos = StackT<int>();
  63.     for(int i=0; i<70; i++)
  64.     {
  65.         stos.put(i);
  66.     }
  67.     while (!(stos.empty()))
  68.     {
  69.         cout<<stos.get();
  70.     }
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement