Directorio artículo
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:
- LinkList pondrá el valor en la cola
- Off el nodo principal (
queue.remove()
) en la cola - El segundo paso del ciclo (
队列长度-1
) veces - 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;
}
}