Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef STACK_H
- #define STACK_H
- #include<iostream>
- using namespace std;
- template <class T>
- class Stack
- {
- private:
- int size, top;
- T s_ptr;
- public:
- Stack(int);
- ~Stack();
- void push(T val);
- T peek();
- T pop();
- bool isEmpty();
- };
- template <class T>
- Stack<T>::Stack(int maxsize)
- {
- size = maxsize;
- top = -1;
- s_ptr = new T(size);
- }
- template <class T>
- Stack<T>::~Stack()
- {
- //delete
- }
- template <class T>
- void Stack<T>::push(T val)
- {
- if(!isfull())
- {
- s_ptr[++top] = val;
- }
- else
- {
- cout << "\n\nStack is full" << endl;
- }
- }
- template <class T>
- T Stack<T>::pop()
- {
- if(!isEmpty())
- {
- return s_ptr[top--];
- }
- else
- {
- cout << "\n\nStack is empty" << endl;
- }
- }
- template <class T>
- T Stack<T>::peek()
- {
- if (!isEmpty())
- return s_ptr[top];
- else
- exit(EXIT_FAILURE);
- }
- template <class T>
- bool Stack<T>::isEmpty()
- {
- return top == -1;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement