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 相关文章推荐
根据分辨率不同,调用不同的css文件
Jul 07 Javascript
node.js中的fs.fchmod方法使用说明
Dec 16 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
微信小程序 Toast自定义实例详解
Jan 20 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
Feb 16 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
vue实现前台列表数据过滤搜索、分页效果
May 28 Javascript
微信小程序错误this.setData报错及解决过程
Sep 18 Javascript
js实现内置计时器
Dec 16 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
php5 and xml示例
2006/11/22 PHP
PHP 上传文件大小限制
2009/07/05 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
Python 忽略warning的输出方法
2018/10/18 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
高一地理教学反思
2014/01/18 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
python中opencv实现图片文本倾斜校正
2021/06/11 Python