/* * sstack.cpp * * Created on: 17.10.2013 * Author: trifon */ #include "stack.h" #define MAX 100 template class SStack : public Stack { private: T stack[MAX]; int last; public: SStack() : last(-1) {} bool empty() const { return last == -1; } bool push(T const& x) { if (last == MAX - 1) return false; stack[++last] = x; return true; } bool pop(T& x) { if (empty()) return false; // !empty // last >= 0 x = stack[last--]; return true; } bool top(T& x) const { if (empty()) return false; x = stack[last]; return true; } };