题目描述:
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
思路:
定义两个栈,我们知道队列是后进先出的特点,当有两个栈时,用栈1负责Push,假如进栈序列是{1,2},那么栈1里,2就是栈顶,1是栈底,再把栈1的元素放入栈2中,此时栈2中的序列则变成了1是栈顶,2是栈底,此时调用Push方法,则2先出来,则实现了队列后进先出的特点
注意:在栈2有元素的时候,不允许栈1把元素再往栈2里放,这样会打乱序列。
代码:
var Stack1 = [],
Stack2 = [];
function push(node)
{
// write code here
Stack1.push(node);
}
function pop()
{
// write code here
if (!Stack2.length){
while (Stack1.length){
Stack2.push(Stack1.pop())
}
}
return Stack2.pop();
}