Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template<typename T> class Stack{
- public:
- Stack(int = 10);
- ~Stack();
- bool push(const T&);
- bool pop(T&);
- bool isEmpty() const;
- bool isFull() const;
- private:
- int size;
- int top;
- T *stackPtr;
- };
- template<typename T> Stack<T>::Stack(int s){
- size = ( s > 0? s : 10);
- top = -1;
- stackPtr = new T[size];
- }ì
- template<typename T> Stack<T>::~Stack(){
- delete [] stackPtr;
- }
- template<typename T> bool Stack<T>::push(const T &pushElem){
- if( !isFull() ){
- stackPtr[++top] = pushElem;
- return true;
- }
- return false;
- }
- template<typename T> bool Stack<T>::pop(T &popElem){
- if( !isEmpty() ){
- popElem = stackPtr[top--];
- return true;
- }
- return false;
- }
- template<typename T> bool Stack<T>::isEmpty() const{
- return top == -1;
- }
- template<typename T> bool Stack<T>::isFull() const{
- return top == size;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement