Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <iostream>
- #include <string>
- #include <iomanip>
- using namespace std;
- class stack
- {
- private:
- int* st;
- int size;
- int index;
- string name;
- public:
- stack(string n, int s)
- {
- size = s;
- name = n;
- index = 0;
- st = new int[size];
- }
- bool add(int x)
- {
- if (index != size)
- {
- *(st + index) = x;
- index++;
- return true;
- }
- else { return false; }
- }
- bool pop()
- {
- if (index-1>0)
- {
- *(st + index - 1) = 0;
- index--;
- return true;
- }
- else { return false; }
- }
- int len()
- {
- return index;
- }
- int get()
- {
- return(st[index - 1]);
- }
- string getname() { return name; }
- int getsize() { return size; }
- ~stack()
- {
- delete[] st;
- }
- };
- int main()
- {
- string name1, name2;
- int x, L, size1, size2;
- cin >> name1 >> size1;
- stack Obj1(name1, size1);
- cin >> name2 >> size2;
- stack Obj2(name2, size2);
- bool flag1 = true;
- bool flag2 = true;
- while (flag1 and flag2)
- {
- cin >> x;
- flag1 = Obj1.add(x);
- flag2 = Obj2.add(x);
- }
- cout << setw(15) << left << Obj1.getname();
- cout << Obj1.getsize() << endl;
- cout << setw(15) << left << Obj2.getname();
- cout << Obj2.getsize() << endl;
- cout << setw(15) << left << Obj1.getname()<<Obj2.getname()<<endl;
- cout << setw(15) <<right<< Obj1.get();
- cout << setw(15) <<right<< Obj2.get();
- if (Obj1.len() > Obj2.len())
- {
- while (Obj2.pop())
- {
- Obj1.pop();
- cout << endl;
- cout << setw(15) <<right<< Obj1.get();
- cout << setw(15) <<right<< Obj2.get();
- }
- }
- else
- {
- while (Obj1.pop())
- {
- Obj2.pop();
- cout << endl;
- cout << setw(15) <<right<< Obj1.get();
- cout << setw(15) <<right<< Obj2.get();
- }
- }
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement