Dos pilas para implementar el código de implementación específico de la cola

cola

1. Ideas para resolver problemas

  • En primer lugar, utilice dos pilas para implementar la cola. Es necesario comprender que la pila es el primero en entrar, el primero en salir, y la cola es el primero en entrar, primero en salir;
  • Luego usamos una de las pilas para implementar la operación de poner en cola, y la otra se usa para sacar de la cola, es decir, una pila solo se usa para la entrada y la otra solo para salir;
  • Por ejemplo, hay un conjunto de números [12,23,45,55]; ponga 12,23 en s1, y ahora quiere dejar el equipo, el primero en salir debería ser 12, luego solo necesita agregue todo s1 a s2, de esta manera, simplemente aparezca;
  • Si quieres dejar el equipo, primero debes verificar si hay elementos en s2. Si es así, solo necesitas hacer estallar los elementos; si no pones todo s1 en s2 para hacer estallar;
    Inserte la descripción de la imagen aquí

2. Darse cuenta

2.1 Operación de inscripción
//入栈
    public void push(int x) {
    
    
        /*
        1.首先给s1入栈
         */
        s1.push(x);
    }

2.2 Operación de sacar de cola
public int pop() {
    
    
        /*
        1.如果s2为空,则将s1全部的值先移动到s2
        2.如果s2有值,则直接弹出
         */
        if (s2.empty()){
    
    
            while(!s1.empty()){
    
    
                s2.push(s1.pop());
            }
        }
        if (!s2.empty()){
    
    
            return s2.pop();
        }
        return -1;
    }
2.3 Elemento de cabezal emergente
public int peek() {
    
    
        if (s2.empty()){
    
    
            while(!s1.empty()){
    
    
                s2.push(s1.pop());
            }
        }
        if (!s2.empty()){
    
    
            return s2.peek();
        }
        return -1;

    }

2.4 Determine si está vacío
public boolean empty() {
    
    
        if (s1.empty() && s2.empty()){
    
    
            return true;
        }
        return false;
    }

Supongo que te gusta

Origin blog.csdn.net/qq_45665172/article/details/110230048
Recomendado
Clasificación