/* * push_pop_list.cpp * * Created on: 28.11.2013 * Author: trifon */ #include "lqueue.cpp" #include "lstack.cpp" #include "linked_list.cpp" template class PushPop { public: virtual bool push(T const& x) = 0; virtual bool pop(T& x) = 0; }; 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 LStack { public: bool push(T const& x) { return LStack::push(x); } bool pop(T& x) { return LStack::pop(x); } }; typedef LinkedList* > PushPopIntList;