用两个栈实现队列操作
1 //用两个栈来实现一个队列,完成队列的Push和Pop操作。 2 //队列中的元素为int类型。 3 4 var stack1 = [], 5 stack2 = []; 6 7 //入队操作:直接将元素入栈A 8 function push(node) 9 { 10 stack1.push(node); 11 } 12 13 //首先判断栈2是否为空,若不为空,栈2直接出栈; 14 //若为空,需将栈A的所有元素出栈并压入栈2,全部完成后栈2出栈; 15 function pop() 16 { 17 if(stack2.length == 0){ 18 while(stack1.length !== 0){ 19 stack2.push(stack1.pop()); 20 } 21 } 22 return stack2.pop(); 23 }
用两个栈实现一个队列的功能?要求给出算法和思路!
<分析>:
入队:将元素进栈A
出队:判断栈B是否为空,如果为空,则将栈A中所有元素pop,并push进栈B,栈B出栈;
如果不为空,栈B直接出栈。
用两个队列实现一个栈的功能?要求给出算法和思路!
<分析>:
入栈:将元素进队列A
出栈:判断队列A中元素的个数是否为1,如果等于1,则出队列,否则将队列A中的元素 以此出队列并放入队列B,直到队列A中的元素留下一个,然后队列A出队列,再把 队列B中的元素出队列以此放入队列A中。
参考链接:https://www.nowcoder.com/questionTerminal/54275ddae22f475981afa2244dd448c6

浙公网安备 33010602011771号