首页 > 编程 > JavaScript > 正文

JS实现利用两个队列表示一个栈的方法

2019-11-19 14:44:18
字体:
来源:转载
供稿:网友

本文实例讲述了JS实现利用两个队列表示一个栈的方法。分享给大家供大家参考,具体如下:

先看原理图:

理清楚思路,再动笔写:

<!DOCTYPE html><html><head>  <title>2 Queue</title>  <meta charset="utf-8"/>  <script type="text/javascript">  var arr1 = [];  var arr2 = [];    function Queue(arr){      this.push = function(element){        return arr.push(element);      }      this.pop = function(){        return arr.shift();      }      this.size = function(){        return arr.length;      }      this.display = function(){        console.log(arr);      }    }    var queue1 = new Queue(arr1);    queue1.push(1);    queue1.push(4);    queue1.push(5);    queue1.push(7);    queue1.display();    var queue2 = new Queue(arr2);    //利用两个队列实现栈。放在数组中打印    var res = [], k = 0;    while(queue1.size()!=0){      var len = queue1.size();      for(var i = 0; i<len-1; i++){        queue2.push(queue1.pop());      }      // 打印queue1最后一个元素,并出队      res[k] = queue1.pop();      ++k;      // 队列2的元素放置到队列1中      for(var i = 0; i<len-1; i++){        queue1.push(queue2.pop());      }    }    console.log("res:" + res);    //利用两个队列实现栈。单个弹出    while(queue1.size()!=0){      var len = queue1.size();      for(var i = 0; i<len-1; i++){        queue2.push(queue1.pop());      }      // 打印queue1最后一个元素,并出队      console.log(queue1.pop());      // 队列2的元素放置到队列1中      for(var i = 0; i<len-1; i++){        queue1.push(queue2.pop());      }    }  </script></head><body></body></html>

运行结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表