#include #include "Node.h" using namespace std; template class Deque //with queue { public: void push (Element & x); Element pop(); void inject (Element & x); Element eject(): private: queue deque; queue temp; Node t; Node final_pop; }; void push(Element & x) { deque.push(x); } Element pop() { start_size = deque.size(); for(int i = 0; i < start_size - 1; i++) { t = deque.pop(); temp.push(t); } final_pop = deque.pop(); deque = temp; //empty temp (ideally, in a destructor) for(int j = 0; j < temp.size(); j++) { temp.pop(); } return final_pop(); } void inject(Element & x) { start_size = deque.size(); temp.push(x); for(int i = 0; i < start_size; i++) { t = deque.pop(); temp.push(t); } deque = temp; //empty temp (ideally, in a destructor) for(int j = 0; j < temp.size(); j++) { temp.pop(); } } Element eject() { return deque.pop(); }