Cola de dos pilas
tema
Una cola se implementa mediante dos pilas, que admiten las operaciones básicas de la cola (agregar, sondear, mirar)
punto importante
1. Cuando empuje stackPop a stackPop por stackPush, empuje all stackPush a
2. Al retirar de la cola, si stackPop tiene elementos, no necesita empujar stackPop a
Código
let stackPush = []
let stackPop = []
//入队如果队列已满,抛出异常
function add(ele){
stackPush.unshift(ele)
}
// poll:将首个元素从队列中弹出,如果队列是空的,就返回null
function poll(){
if(stackPop[0]){
return stackPop.shift()
}else if(stackPush[0]){
for (let index = 0; stackPush.length>0; index++) {
let ele = stackPush.shift()
stackPop.unshift(ele)
}
return stackPop.shift()
}else{
return null
}
}
//查看首个元素,不会移除首个元素,如果队列是空的就返回null
function peek(){
if(stackPop[0]){
return stackPop[0]
}else if(stackPush[0]){
for (let index = 0; stackPush.length>0; index++) {
let ele = stackPush.shift()
stackPop.unshift(ele)
}
return stackPop[0]
}else{
return null
}
}
Prueba simple
let arr1= [5,6,4,3,1]
for (let ind = 0; ind < arr1.length; ind++) {
const ele = arr1[ind];
add(ele)
}
console.log(stackPush)
console.log(poll())
console.log(peek())
Dirección de descarga de código
agradecer
Si cree que es útil para su estudio, por favor compártalo con quienes lo necesiten o quiera animarlo, gracias por su apoyo y
continuaré actualizándolo. . .