JavaScript 栈:两个栈实现队列【思路与知识点总结】

编程入门 行业动态 更新时间:2024-10-28 14:30:50

JavaScript 栈:两个栈实现<a href=https://www.elefans.com/category/jswz/34/1771257.html style=队列【思路与知识点总结】"/>

JavaScript 栈:两个栈实现队列【思路与知识点总结】

描述
用两个栈来实现一个队列,分别完成在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。

示例:
输入: [“PSH1”,“PSH2”,“POP”,“POP”] 返回: 1,2
解析:
“PSH1”:代表将1插入队列尾部
“PSH2”:代表将2插入队列尾部
"POP“:代表删除一个元素,先进先出=>返回1
"POP“:代表删除一个元素,先进先出=>返回2

示例1
输入:[“PSH1”,“PSH2”,“POP”,“POP”] 返回值:1,2

思路:思路比较直白,第一个栈先进后出,出的元素进第二个栈,第二个栈先进后出。相当于两个栈分别过一下。
模拟队列的入队操作: 从1栈入栈
模拟队列的出队操作: 如果2栈是空,则将1栈中的全部元素出1栈并入2栈,弹出2栈最后一个元素;如果2栈不是空,则直接弹出2栈最后一个元素

let stack1=[];
let stack2=[];
function push(node){stack1.push(node);
}
function pop(){if (stack2.length === 0) {while(stack1.length){stack2.push(stack1.pop());}}return stack2.pop();
}


总结:本题用到的知识点
1. Array对象的push()方法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

arrayObject.push(newelement1,newelement2,....,newelementX)

参数说明:
newelement1:必需。要添加到数组的第一个元素。
newelement2:可选。要添加到数组的第二个元素。
newelementX:可选。可添加多个元素。

返回值:
把指定的值添加到数组后的新长度。

说明:
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

注意:该方法会改变数组的长度。

2. Array对象的pop()方法
pop() 方法用于删除并返回数组的最后一个元素。

arrayObject.pop()

返回值:
arrayObject 的最后一个元素。

说明:
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

更多推荐

JavaScript 栈:两个栈实现队列【思路与知识点总结】

本文发布于:2023-07-28 21:56:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1331391.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:队列   知识点   思路   两个   JavaScript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!