Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template <typename T> class element
- {
- public:
- T current;
- element <T>* next;
- element(T x, element<T> *y)
- {
- current = x;
- next = y;
- }
- };
- template <typename T> class stack
- {
- int length;
- element <T>* top_element_stack;
- public:
- stack ()
- {
- length = 0;
- top_element_stack = NULL;
- }
- void pop ()
- {
- if (top_element_stack != NULL)
- {
- element<T>* temporary = top_element_stack;
- top_element_stack = top_element_stack->next;
- delete temporary;
- length --;
- }
- }
- void push (T x)
- {
- element<T>* temporary = new element<T> (x, top_element_stack);
- top_element_stack = temporary;
- length ++;
- }
- int size ()
- {
- return length;
- }
- T top ()
- {
- if (length == 0)
- {
- throw 1;
- }
- T temporary = top_element_stack->current;
- return temporary;
- }
- catch(int i)
- {
- cout << " N0 element, error " << i << endl;
- }
- };
- int main()
- {
- stack <int> stack_1;
- int element;
- int size;
- cin >> size;
- cout << "-------" << endl;
- for (int i = 0; i < 5; i ++)
- {
- cin >> element;
- stack_1.push(element);
- }
- for (int i = 0; i < stack_1.size(); i ++) {
- try {
- cout << stack_1.top() << endl;
- } catch (int n) {
- switch (n) {
- case 1:
- cout << "ERROR " << n << ": empty stack";
- break;
- }
- }
- cout <<"-------" << endl;
- stack_1.pop();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement