Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <iostream>
- #include <vector>
- #include <iomanip>
- using namespace std;
- class Stack
- {
- private:
- int size, size_now, top;
- int *arr = new int[0];
- int *arr_del_last();
- public:
- Stack (int _size);
- ~Stack();
- void add (int elem);
- int del_last();
- bool is_S_over_flow();
- bool is_S_empty();
- };
- Stack::Stack (int _size)
- {
- arr = new int [_size];
- size = _size;
- size_now = 0;
- top = -1;
- }
- Stack::~Stack()
- {
- delete arr;
- }
- void Stack::add (int elem)
- {
- if (!is_S_over_flow())
- {
- top++;
- arr[top] = elem;
- size_now++;
- }
- }
- int Stack::del_last()
- {
- if (!is_S_empty())
- {
- int elem_last;
- elem_last = arr[top];
- arr = arr_del_last();
- top--;
- size_now--;
- return elem_last;
- }
- }
- bool Stack::is_S_over_flow()
- {
- return size_now == size;
- }
- bool Stack::is_S_empty()
- {
- return size == 0;
- }
- int *Stack::arr_del_last()
- {
- int * new_arr = new int [size_now];
- for (int i = 0; i < size_now - 1; i++)
- {
- new_arr[i] = arr[i];
- }
- return new_arr;
- }
- int main()
- {
- int size1, size2;
- string name1, name2;
- cin >> name1 >> size1;
- Stack Stack1 (size1);
- cin >> name2 >> size2;
- Stack Stack2 (size2);
- while (true)
- {
- int elem;
- cin >> elem;
- if (Stack1.is_S_over_flow() or Stack2.is_S_over_flow())
- break;
- Stack1.add (elem);
- Stack2.add (elem);
- }
- cout << setfill (' ') << setw(15) << name1 << " " <<setfill (' ') << setw(15) << name2 << endl;
- while (!Stack1.is_S_empty() and !Stack2.is_S_empty())
- {
- cout << setfill (' ') << setw(15) << Stack1.del_last() << " " <<setfill (' ') << setw(15) << Stack2.del_last() << endl;
- }
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement