标签:
题目:用两个栈实现一个队列。请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除结点的功能。队列的声明如下:
template <typename T> class CQueue{public:CQueue(void);~CQueue(void);// 在队列末尾添加一个结点void appendTail(const T& node);// 删除队列的头结点T deleteHead();private:stack<T> stack1;stack<T> stack2;};


template<typename T> void CQueue<T>::appendTail(const T& element){stack1.push(element);}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)throw new exception("queue is empty");T head = stack2.top();stack2.pop();return head;}
标签:
原文地址:http://www.cnblogs.com/zhuzhenfeng/p/4663604.html