/* * pushpoplist.cpp * * Created on: 9.12.2014 г. * Author: trifon */ #include #include "lqueue.cpp" #include "lstack.cpp" template class PushPop { public: virtual bool push(T const&) = 0; virtual bool pop(T&) = 0; virtual ~PushPop() { } }; template class PushPopQueue : public PushPop, public LQueue { public: bool push(T const& x) { return LQueue::push(x); } bool pop(T& x) { return LQueue::pop(x); } }; template class PushPopStack : public PushPop, public LinkedStack { public: bool push(T const& x) { return LinkedStack::push(x); } bool pop(T& x) { if (LinkedStack::empty()) return false; x = LinkedStack::pop(); return true; } };