Use dos pilas para implementar las operaciones push y pop de la cola (Java)

análisis de tema

Pila: La estructura de datos básica que satisface la característica de primero en entrar, último en salir.
Cola: Al igual que hacer cola, primero en entrar, primero en salir.

Idea: De acuerdo con las características de la pila y las características de la cola, use una pila para guardar datos y una pila para ayudar a la operación de inserción de datos.

Código

package stackQueueAlgorithm;

import java.util.Stack;

public class TwoStackToQueue {
    
    
    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();

    public void  push(Integer node){
    
    
        //stack1作为辅助栈进行入队操作
        //stack2作为主栈用来保存已经入队的数据
        if(stack2.isEmpty()){
    
    
            stack2.push(node);
        }else{
    
    
            //stack2不为空,就将所有的数据依次弹出压入stack1
            while(!stack2.isEmpty()){
    
    
                stack1.push(stack2.pop());
            }
            stack2.push(node);
            //将stack1的数据全部压回来
            while(!stack1.isEmpty()){
    
    
                stack2.push(stack1.pop());
            }
        }

    }

    public int pop(){
    
    
       //出栈弹出stack2栈顶的数据即可
        return stack2.pop();
    }

}

Dado que Stack en Java se hereda de Vector, y el método de biblioteca JRT utilizado ha considerado completamente las excepciones y varias condiciones, el método pop solo necesita extraer los datos superiores de la pila.

Supongo que te gusta

Origin blog.csdn.net/weixin_42643321/article/details/108516977
Recomendado
Clasificación