Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.68 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <vector>
  5. #include <iomanip>
  6.  
  7. using namespace std;
  8.  
  9. class Stack
  10. {
  11.     private:
  12.         int size, size_now, top;
  13.         int *arr = new int[0];
  14.         int *arr_del_last();
  15.     public:
  16.         Stack (int _size);
  17.         ~Stack();
  18.         void add (int elem);
  19.         int del_last();
  20.         bool is_S_over_flow();
  21.         bool is_S_empty();
  22. };
  23.  
  24. Stack::Stack (int _size)
  25. {
  26.     arr = new int [_size];
  27.     size = _size;
  28.     size_now = 0;
  29.     top = -1;
  30. }
  31.  
  32. Stack::~Stack()
  33. {
  34.     delete arr;
  35. }
  36.  
  37. void Stack::add (int elem)
  38. {
  39.     if (!is_S_over_flow())
  40.     {
  41.         top++;
  42.         arr[top] = elem;
  43.         size_now++;
  44.     }
  45. }
  46.  
  47. int Stack::del_last()
  48. {
  49.     if (!is_S_empty())
  50.     {
  51.         int elem_last;
  52.         elem_last = arr[top];
  53.         arr = arr_del_last();
  54.         top--;
  55.         size_now--;
  56.         return elem_last;
  57.     }
  58. }
  59.  
  60. bool Stack::is_S_over_flow()
  61. {
  62.     return size_now == size;
  63. }
  64.  
  65. bool Stack::is_S_empty()
  66. {
  67.     return size == 0;
  68. }
  69.  
  70. int *Stack::arr_del_last()
  71. {
  72.     int * new_arr = new int [size_now];
  73.     for (int i = 0; i < size_now - 1; i++)
  74.     {
  75.         new_arr[i] = arr[i];
  76.     }
  77.     return new_arr;
  78. }
  79.  
  80. int main()
  81. {
  82.     int size1, size2;
  83.     string name1, name2;
  84.     cin >> name1 >> size1;
  85.     Stack Stack1 (size1);
  86.     cin >> name2 >> size2;
  87.     Stack Stack2 (size2);
  88.     while (true)
  89.     {
  90.         int elem;
  91.         cin >> elem;
  92.         if (Stack1.is_S_over_flow() or Stack2.is_S_over_flow())
  93.             break;
  94.         Stack1.add (elem);
  95.         Stack2.add (elem); 
  96.     }
  97.     cout << setfill (' ') << setw(15) << name1 << "   " <<setfill (' ') << setw(15) << name2 << endl;
  98.     while (!Stack1.is_S_empty() and !Stack2.is_S_empty())
  99.     {
  100.         cout << setfill (' ') << setw(15) << Stack1.del_last() << "    " <<setfill (' ') << setw(15) << Stack2.del_last() << endl;
  101.     }
  102.    
  103.     return(0);
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement