nick43ui

Untitled

Nov 6th, 2020
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<class T> class stack{
  5. public:
  6. stack(int s);
  7.  
  8. void push(T);
  9. T pop();
  10.  
  11. void print();
  12.  
  13. bool EMPTY;
  14. bool FULL;
  15. private:
  16. int size; // Размер выделяемого массива
  17. int count; // Элементов в этом массиве
  18.  
  19. T * elements;
  20. };
  21.  
  22. template<class T> stack<T>::stack(int s)
  23. {
  24. count = 0;
  25. size = s;
  26.  
  27. EMPTY = true;
  28. FULL = false;
  29.  
  30. elements = new T[size];
  31. }
  32.  
  33. template<class T> void stack<T>::push(T item)
  34. {
  35. if(FULL)
  36. {
  37. cout << "Cant do it!" << endl;
  38. return;
  39. }
  40. EMPTY = false;
  41.  
  42. elements[count] = item;
  43. count++;
  44. if (count == size-1)
  45. FULL = true;
  46. }
  47.  
  48. template<class T> T stack<T>::pop()
  49. {
  50. if (EMPTY)
  51. {
  52. cout << "Cant do it!" << endl;
  53. return T();
  54. }
  55. count--;
  56. if(count == 0)
  57. EMPTY = true;
  58. return elements[count+1];
  59. }
  60.  
  61. template<class T> void stack<T>::print()
  62. {
  63. for(int a=0;a<count;a++)
  64. cout << "Element " << a << " = " << elements[a] << " ;" << endl;
  65. }
  66.  
  67.  
  68. int main(int argc, char* argv[])
  69. {
  70.  
  71. return 0;
  72. }
Add Comment
Please, Sign In to add comment