Implement the following operations of a queue using stacks.
push
to top, peek/pop from top, size,
and is empty operations are valid.Subscribe to see which companies asked this question
思路:两个栈实现一个队列
c++ code:
class Queue {
public:
// Push element x to the back of queue.
void push(int x) {
s2.push(x);
}
// Removes the element from in front of queue.
void pop(void) {
if(s1.empty()) {
while(!s2.empty()){
int t = s2.top();
s2.pop();
s1.push(t);
}
}
s1.pop();
}
// Get the front element.
int peek(void) {
if(s1.empty()) {
while(!s2.empty()){
int t = s2.top();
s2.pop();
s1.push(t);
}
}
return s1.top();
}
// Return whether the queue is empty.
bool empty(void) {
if(s1.empty() && s2.empty()) return true;
else return false;
}
private:
stack<int> s1,s2;
};LeetCode:Implement Queue using Stacks
原文:http://blog.csdn.net/itismelzp/article/details/51473872