Documentos de Académico
Documentos de Profesional
Documentos de Cultura
java Page 1 of 2
H:\EDVideojuegos\programasJava\AplicaciónPilaGenConArray\src\aplicacionpilagenconarray\PilaArray.java
package aplicacionpilagenconarray;
import java.util.EmptyStackException;
/**-----------------------------------------------------------------
* IMPLEMENTACIÓN DEL TAD PILA DE CUALQUIER OBJETO USANDO UN ARRAY
* GENÉRICO REDIMENSIONABLE Y UNA VARIABLE INSTANCIA CON CON DEL ÚLTIMO
* ELEMENTO EN EL ARRAY.
* @author usuario
*------------------------------------------------------------------*/
public class PilaArray<E> implements Pila<E> {
//datos:
private int maxElem = 5; // numero de elementos que caben en el array.
private E pila[];
private int posCima = -1; // índice del elemento de la cima
//métodos:
/**----------------------------------------
* Constructor que crea una pila vacía.
*/
public PilaArray(){
pila = (E[]) new Object[maxElem];//no se permite hacer new
// con el tipo genérico. Hay que
// crear una array de objetos y
// y luego hacer un casting a un
// array de objetos de clase E.
}
/**--------------------------------------------------------
* Calcula y devuelve un String con todos los elementos.
* @return. Devuelve los valores de los elementos de la pila en un String.
*/
@Override
public String toString(){
String s;
s = "[";
if (size() > 0){
s = s + pila[0];
for (int i = 1; i <= posCima; i++)
s = s + "," + pila[i];
}
return s + "]";
}
/**------------------------------------------------------------------
* Calcula y devuelve el número de elementos que hay en la pila
* @return. Devuelve el número de elementos que hay en la pila.
*/
@Override
public int size() {
return (posCima + 1);
}
/**--------------------------------------------------------
* Calcula si la pila está vacía
* @return true si la pila está vacía, false si no.
*/
@Override
public boolean isEmpty() {
return (posCima < 0);
}
/**----------------------------------------------------------
* Devuelve el elemento que hay en la cima de la pila.
* @throws EmptyStackException si la pila está vacía
* @return el valor del elemento que hay en lo alto de la pila.
*/
@Override
public E top() throws EmptyStackException {
if (isEmpty())
throw new EmptyStackException();
return pila[posCima];
}
/**----------------------------------------------------------
* Inserta un elemento en la parte superior de la pila
* @param elem, elemento que va a ser insertado.
*/
@Override
public void push(E elem) {
E a[];
/**----------------------------------------------------
* Devuelve el elemento que hay en la cima de la pila.
* @return el elemento de la cima
* @throws EmptyStackException si la pila está vacía
*/
@Override
public E pop() throws EmptyStackException {
E cima;
if (isEmpty())
throw new EmptyStackException();
cima = pila[posCima];
posCima--;
return cima;
}