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

作者:鱼儿跳 时间:2024-02-26 12:41:03 

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/xin9910/article/details/73740926

标签:JS,队列,栈
0
投稿

猜你喜欢

  • javascript给span标签赋值的方法

    2023-09-05 21:28:53
  • JS的编译和执行顺序

    2009-02-01 18:42:00
  • 解决TensorFlow GPU版出现OOM错误的问题

    2021-09-10 10:27:44
  • 为网站代码块pre标签增加一个复制代码按钮代码

    2024-04-10 10:49:27
  • 微信小程序实现2048小游戏的详细过程

    2024-04-23 09:11:18
  • Python爬虫基础之爬虫的分类知识总结

    2021-12-24 03:20:12
  • 浅析使用JDBC操作MySQL需要添加Class.forName("com.mysql.jdbc.Driver")

    2024-01-21 23:08:48
  • python 实现对文件夹中的图像连续重命名方法

    2022-11-04 02:04:08
  • python中requests小技巧

    2023-12-11 19:31:21
  • 解决mysql的int型主键自增问题

    2024-01-28 11:54:45
  • python采集百度百科的方法

    2023-01-12 03:48:35
  • 栈和队列数据结构的基本概念及其相关的Python实现

    2022-03-14 23:18:28
  • JS实现TITLE悬停长久显示效果完整示例

    2024-04-16 09:54:00
  • TensorFlow在MAC环境下的安装及环境搭建

    2023-09-14 10:32:23
  • windows 2000 IIS下配置Php+Mysql+zend的图文教程(完整版)

    2007-06-15 10:51:00
  • sql 存储过程批量删除数据的语句

    2012-08-21 10:24:14
  • Python对小数进行除法运算的正确方法示例

    2021-06-19 08:42:18
  • win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码

    2022-12-19 11:56:28
  • Django-celery-beat动态添加周期性任务实现过程解析

    2021-07-29 13:09:49
  • 二级域名的解析指向ASP源码

    2007-10-19 19:13:00
  • asp之家 网络编程 m.aspxhome.com