网络编程
位置:首页>> 网络编程>> JavaScript>> JS实现利用两个队列表示一个栈的方法

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

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

标签:JS,队列,栈

本文实例讲述了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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com