题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
知识点:涉及到的知识点分别为栈和队列。
- 栈:先进后出
- 队列:先进先出
思路解析:由于栈是后进先出的,队列的进由栈1负责,把栈1中的元素倒进栈2中,队列的出由栈2负责(当栈2为空时,将栈1的元素全部pop出去传入栈2,则此时栈2的pop就是队列的pop了),则实现了后进先出的操作。
var stack1=[];
var stack2=[];
function push(node)
{
// write code here
return stack1.push(node);
}
function pop()
{
// write code here
if(stack2.length==0){
while(stack1.length>0){
stack2.push(stack1.pop());
}
}
return stack2.pop();
}
思路2:使用了一个栈,利用shift()方法,把数组的第一个元素从其中删除,并返回第一个元素的值。实现先进先出。
var stack1=[];
function push(node)
{
// write code here
return stack1.push(node);
}
function pop()
{
// write code here
return stack1.shift();
}