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 相关文章推荐
用javascript获取textarea中的光标位置
May 06 Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
jquery 循环显示div的示例代码
Oct 18 Javascript
jQuery CSS()方法改变现有的CSS样式表
Sep 09 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
关于编写性能高效的javascript事件的技术
Nov 28 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
JS简单实现String转Date的方法
Mar 02 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
关于引入vue.js 文件的知识点总结
Jan 28 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
typecho插件编写教程(一):Hello World
2015/05/28 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
vuejs如何配置less
2017/04/25 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
Python自动抢红包教程详解
2019/06/11 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python多进程并发demo实例解析
2019/12/13 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
企业消防安全制度
2014/02/02 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
入股协议书范本
2014/04/14 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android