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