template <typename T> class Queue{
public:
Queue();
~Queue();
T dequeue();
void inqueue(const T& element);
private:
std::stack<T> st1;//for inqueue
std::stack<T> st2;//for dequeue
};
template <typename T> void inqueue(const T& element){
st1.push(element);
}
template <typename T> T dequeue(){
if(st2.size()<=0){
while(st1.size()>0){
T& element=st1.top();
st1.pop();
st2.push(element);
}
}
if(st2.size()==0){
throw exception("empty queue.");
}
T head=st2.top();
st2.pop();
return head;
}
剑指offer 面试题7 两个栈实现队列
最新推荐文章于 2021-06-18 23:21:50 发布