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


Posted in Javascript onDecember 13, 2017

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

先看原理图:

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>

运行结果:

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

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

Javascript 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
JS限制Textarea文本域字符个数的具体实现
Aug 02 Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 Javascript
JS简单实现动画弹出层效果
May 05 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
微信小程序制作扭蛋机代码实例
Sep 24 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
Oct 31 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
Apr 11 Javascript
微信小程序实现简单的select下拉框
Nov 23 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 Javascript
node vue项目开发之前后端分离实战记录
Dec 13 #Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 #Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 #Javascript
Angular4编程之表单响应功能示例
Dec 13 #Javascript
详解webpack require.ensure与require AMD的区别
Dec 13 #Javascript
vue登录路由验证的实现
Dec 13 #Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 #Javascript
You might like
PHP EOT定界符的使用详解
2008/09/30 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
php实现websocket实时消息推送
2018/03/30 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python绘制双柱形图代码实例
2017/12/14 Python
pip安装python库的方法总结
2019/08/02 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python求绝对值的三种方法小结
2019/12/04 Python
序列化Python对象的方法
2020/08/01 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
诚信考试倡议书
2014/04/15 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记