队列【思路与知识点总结】"/>
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 栈:两个栈实现队列【思路与知识点总结】
发布评论