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>
运行结果:
希望本文所述对大家JavaScript程序设计有所帮助。
来源:http://blog.csdn.net/xin9910/article/details/73740926


猜你喜欢
- 我的主要思路是:Excel -> Html -> Image代码如下:# -*- coding:utf-8 -*-__autho
- 在使用json.dumps时要注意一个问题>>> import json>>> print json.d
- tensorflow中可以通过配置环境变量 'TF_CPP_MIN_LOG_LEVEL' 的值,控制tensorflow是否
- 关于文件名:必须以如下方式命名,不要乱起名,也无需专门手动控制加载哪个文件.env 全局默认配置文件,不论什么环境都会加载合并.env.de
- 由于并不清楚服务器具体地址,只有jupyter 连接的情况下,上传文件。方法一:用Linux命令直接用linux命令,在jupyter中只需
- 题目:获得输入正整数 N,反转输出该正整数,不考虑异常情况。
- 一般情况下,在 golang 中执行一些命令如 git clone,则可以使用 exec.Command 函数func RunCommand
- link(){var olink = getElementById("link");var text = olink.i
- 1 引言Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法
- 要想成功的进行字符串的匹配需要使用到正则表达式模块,正则表达式匹配规则以及需要被匹配的字符串。在这三个条件中,模块与字符串都是准备好的,只有
- Python3实现旋转数组的3种算法下面是Python3实现的旋转数组的3种算法。一、题目给定一个数组,将数组中的元素向右移动 k 个位置,
- 区别: 1、主键,Oracle不可以实现自增,mysql可以实现自增。 oracle新建序列,SEQ_USER_Id.nextval 2、索
- Go提供几种方法检查变量的类型,在字符串格式化标识%T, 反射方式:reflect.TypeOf, reflect.ValueOf.Kind
- [摘要]了解如何充分利用SQL Server 2000的全文搜索功能。本文包含有关实现最大吞吐量和最佳性能的几点提示和技
- Python函数库众多,而且在不断更新,所以学习这些函数库最有效的方法,就是阅读Python官方文档。同时借助Google和百度。本文介绍的
- 思路:利用time函数返回的时间字符串与指定时间字符串做比较,相等的时候执行对应的操作。不知道大家的思路是什么,感觉这样比较耗CPU。。。。
- 2022-09-29shell操作:我在使用中是pycharm与数据库建立连接的一个工具。使用的环境:在此处是用在了虚拟环境中。使用场景:一
- 在所有的比例中黄金分割是最能引起人的美感的,0.618被公认为最具有审美意义的比例数字。黄金分割之所以那么普遍的流行,我猜一定跟理想女人体的
- 网络连接与通信是我们学习任何编程语言都绕不过的知识点。 Python 也不例外,本文就介绍因特网的核心协议 TCP ,以及如何用 Pytho
- 1.re.match()re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回N