La pila estática usa un arreglo para almacenar los datos, por lo tanto, estas tienen un tamaño definido desde su creación. Estas estructuras de datos son finitas y determinadas por el tamaño de la creación del arreglo.
Este proyecto fue realizado con el IDE Eclipse, por lo tanto se recomienda abrirlo con el mismo. Más detalles sobre la pila estática aquí.
/**
* Arreglo de objetos usado para almacenar los elementos
*/
private Object pila[];
/**
* Índice actual del arreglo
*/
private int tope;
/**
* Crear la pila
* @param tamanio tamaño de la pila que se desea crear
*/
public Pila(int tamanio){
if(tamanio < 1)
throw new IllegalArgumentException(
"El tamaño debe ser mayor a 0");
this.pila = new Object[tamanio];
this.tope = -1;
} public boolean vacia() {
return tope == -1;
} public boolean llena() {
return this.tope == this.pila.length - 1;
} public void apilar(T elemento) {
if(!llena()) {
this.pila[++this.tope] = elemento;
}else {
System.out.println("Pila llena");
}
} public T desapilar() {
if(!vacia()) {
T object = ultimoElemento();
this.pila[this.tope--] = null;
return object;
}else {
System.out.println("Pila vacia");
return null;
}
} public T ultimoElemento() {
if(!vacia()) {
return (T) this.pila[this.tope];
}
else {
System.out.println("Pila vacía");
return null;
}
}