JS实现利用两个队列表示一个栈的方法
作者:鱼儿跳 时间:2024-02-26 12:41:03
本文实例讲述了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>
运行结果:
希望本文所述对大家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