HICONT

Stackk

Nov 18th, 2022
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <string>
  4. using namespace std;
  5.  
  6. template<typename T>
  7. class Stackk
  8. {
  9. private:
  10.     T* mem;
  11.     int szie;
  12.     int count;
  13. public:
  14.     Stackk(int _size = 0)
  15.     {
  16.         size = _size;
  17.         count = 0;
  18.         mem = newT[size];
  19.         for (int i = 0; i < size; i++)
  20.         {
  21.             mem[i] = T(0);
  22.         }
  23.     }
  24.     Stackk(const Stackk& tmp)
  25.     {
  26.         size = tmp.size;
  27.         count = tmp.count;
  28.         mem = newT[size];
  29.         for (int i = 0; i < size; i++)
  30.         {
  31.             mem[i] = tmp.mem[i];
  32.         }
  33.     }
  34.     ~Stackk()
  35.     {
  36.         if (size != 0)
  37.         {
  38.             delete[]mem;
  39.         }
  40.     }
  41.     Stackk<T>& operator=(const Stackk<T> &tmp)
  42.     {
  43.         if (size != tmp.size)
  44.         {
  45.             if (size != 0)
  46.             {
  47.                 delete[]mem;
  48.             }
  49.             size = tmp.size
  50.             mem = newT[size];
  51.         }
  52.         count = tmp.count;
  53.         for (int i = 0; i < size; i++)
  54.         {
  55.             mem[i] = tmp.mem[i];
  56.         }
  57.         return *this;
  58.     }
  59.     void add(T tmp)
  60.     {
  61.         if (count < size)
  62.         {
  63.             mem[count++] = tmp;
  64.         }
  65.     }
  66.     T get()
  67.     {
  68.         if (count > 0)
  69.         {
  70.             return mem[--count]
  71.         }
  72.     }
  73.     T top()
  74.     {
  75.         if (count > 0)
  76.         {
  77.             return mem[count - 1];
  78.         }
  79.     }
  80.     T IsEmpty()
  81.     {
  82.         if (count == 0)
  83.         {
  84.             return 1 //Стек пуст
  85.         }
  86.         else
  87.         {
  88.             return 0 //Стек не пуст
  89.         }
  90.     }
  91.     T IsFull()
  92.     {
  93.         if (count == size)
  94.         {
  95.             return 1 //Стек полон
  96.         }
  97.         else
  98.         {
  99.             return 0 //Стек не полон
  100.         }
  101.     }
  102. };
Advertisement
Add Comment
Please, Sign In to add comment