template <typename T> class CQueue{ public: CQueue(); ~CQueue(); void appendTail(const T &node); T deleteHead(); private: stack<T> stack1; stack<T> stack2; };高性能思路:
template <typename T> void CQueue<T>::appendTail(const T& node) { stack1.push(node); } template <typename T> T CQueue<T>::deleteHead() { if (stack2.size()<=0) { while(stack1.size()>0) { T &data=stack1.top(); stack1.pop(); stack2.push(data); } } if (stack2.size()==0) { cout<<"Queue is empty"<<endl; return; } T head=stack2.top(); stack2.pop(); return head; }
原文地址:http://blog.csdn.net/lsh_2013/article/details/45585283