#ifndef STACK_H_ #define STACK_H_ class Stack { public: Stack(); bool empty() const; void push(int const&); void pop(); int top() const; private: class Element { public: Element(int const& i, Element* n = nullptr); int data; Element* next; }; Element* first; }; #endif