Una cola se implementa mediante dos pilas, lo que respalda las operaciones básicas de la cola.

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. . .

Supongo que te gusta

Origin blog.csdn.net/XINpxXIN/article/details/104301829
Recomendado
Clasificación