Anatomía y Contrato en Java
// Contrato del TAD Pila
public interface Pila<T> {
void push(T elemento); // O(1)
T pop(); // O(1)
T peek(); // O(1)
boolean isEmpty(); // O(1)
int size(); // O(1)
}
// Ejemplo de uso:
Pila<Integer> p = new PilaEnlazada<>();
p.push(10);
p.push(20);
p.push(30);
int x = p.pop(); // Retorna 30 (LIFO)