Leetcode225. Pilas implementado con cola

título Descripción

aplicación de colas utilizando la siguiente pila:

  • push (x) - pila elemento x
  • pop () - quitar el elemento superior
  • la parte superior () - Obtiene el elemento superior
  • vaciar () - Devuelve si la pila está vacía

Descripción:

  • Sólo puede utilizar el funcionamiento básico de la cola - que es, empujar hacia atrás, ojeada / pop de frente, tamaño, y está vacía de estas operaciones son legales.
  • El idioma que está utilizando no sea compatible con cola. Puede utilizar la lista o la deque (deque) para simular una cola, la cola, siempre y cuando la operación a la norma.
  • Usted puede asumir que todas las operaciones son válidos (por ejemplo, a una pila vacía no llama a la operación pop o superior).

solución del problema

funciones comunes LinkList con analógico (java)

ideas:

La clave principal es dominar el LinkedList funciones comúnmente usado, y su combinación de características de acuerdo con las características de la cola y la pila.
Portal class LinkedList

reflejado principalmente en los detalles push(), cada vez que se necesita para empujar al introducir un valor de la pila:

  1. LinkList pondrá el valor en la cola
  2. Off el nodo principal ( queue.remove()) en la cola
  3. El segundo paso del ciclo ( 队列长度-1) veces
  4. Después de hacer los nodos se convertirá en la cabeza de los nodos recién añadidos.

Esto se hace de tal manera que cada vez que los nuevos elementos se añaden con el fin de pila de pedido. Después de la parte superior y con un pop poll()y peek()el nodo de salida en la cabeza o vista.

class MyStack {
    Queue<Integer> queue;
    
    
    public MyStack() {
        queue = new LinkedList<>();
    }
    
    
    public void push(int x) {
        queue.add(x);
        for(int i = 1; i < queue.size(); i++)
            queue.add(queue.remove());
    }
    
    
    public int pop() {
        return queue.poll();
    }
    
    
    public int top() {
        return queue.peek();
    }
    
    
    public boolean empty() {
        return queue.size() == 0;
    }
}
Publicado 43 artículos originales · alabanza ganado 20 · vistas 1454

Supongo que te gusta

Origin blog.csdn.net/Chen_2018k/article/details/104603419
Recomendado
Clasificación