Java: la clase Stack
Stack es una subclase de Vector que implementa una pila estándar de último en entrar, primero en salir.
Stack solo define el constructor predeterminado, que crea una pila vacía. Stack incluye todos los métodos definidos por Vector y agrega varios propios.
Stack( )
Aparte de los métodos heredados de su clase padre Vector, Stack define los siguientes métodos:
No Señor. | Método y descripción |
---|---|
1 | boolean empty() Prueba si esta pila está vacía. Devuelve verdadero si la pila está vacía y devuelve falso si la pila contiene elementos. |
2 | Object peek( ) Devuelve el elemento en la parte superior de la pila, pero no lo elimina. |
3 | Object pop( ) Devuelve el elemento en la parte superior de la pila, eliminándolo en el proceso. |
4 | Object push(Object element) Empuja el elemento a la pila. También se devuelve el elemento. |
5 | int search(Object element) Busca elementos en la pila. Si se encuentra, se devuelve su desplazamiento desde la parte superior de la pila. De lo contrario, se devuelve -1. |
Ejemplo
El siguiente programa ilustra varios de los métodos admitidos por esta colección:
import java.util.*;
public class StackDemo {
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
static void showpop(Stack st) {
System.out.print("pop -> ");
Integer a = (Integer) st.pop();
System.out.println(a);
System.out.println("stack: " + st);
}
public static void main(String args[]) {
Stack st = new Stack();
System.out.println("stack: " + st);
showpush(st, 42);
showpush(st, 66);
showpush(st, 99);
showpop(st);
showpop(st);
showpop(st);
try {
showpop(st);
} catch (EmptyStackException e) {
System.out.println("empty stack");
}
}
}
Esto producirá el siguiente resultado:
Salida
stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack