对列具有入队,出队操作,特点是先进先出。

而栈的特点是后进先出 。

思路

  • 栈A用来作入队列
  • 栈B用来出队列,当栈B为空时,栈A全部出栈到栈B,栈B再出栈(即出队列)
  1. var stack1 = [];
  2. var stack2 = [];
  3. function push(node)
  4. {
  5. // write code here
  6. stack1.push(node);
  7. }
  8. function pop()
  9. {
  10. if(stack2.length===0 && stack1.length===0){
  11. return null
  12. }
  13. if(stack2.length===0 && stack1.length!==0){
  14. while(stack1.length){
  15. stack2.push(stack1.pop())
  16. }
  17. }
  18. return stack2.pop()
  19. }
  20. module.exports = {
  21. push : push,
  22. pop : pop
  23. };