132.Pilas [stacks] (estructura de datos)

Son listas de objetos que se caracterizan porque los nuevos objetos se añaden al final, y también salen por el final De esta forma, resulta que el último que entra es el primero que sale (en Inglés, LIFO: Last In, First Out).

Pilas (listas LIFO)

public interface Pila<T> {

    // mete un objeto T al final de la pila

    void push(T t) throws ExcepcionPilaLlena;

 

    // retira el último objeto de la pila

    T pop() throws ExcepcionPilaVacia;

 

    // mira, sin retirar, el último objeto

    T top() throws ExcepcionPilaVacia;

 

    // objetos en la pila

    int longitud();

}     

 

Es fácil implementar las pilas como listas:

Pila implementada con una lista

import java.util.*;

 

public class PilaLista<T> implements Pila<T> {

  private List<T> lista = new ArrayList<T>();

 

  public void push(T t) {

    lista.add(t);

  }

 

  public T top() throws ExcepcionPilaVacia {

    if (lista.size() == 0) throw new ExcepcionPilaVacia();

    return lista.get(lista.size()-1);

  }

 

  public T pop() throws ExcepcionPilaVacia {

    if (lista.size() == 0) throw new ExcepcionPilaVacia();

    return lista.remove(lista.size()-1);

  }

 

  public int longitud() {

    return lista.size();

  }

}

 

Temas relacionados

Vademécum