Hola me han puesto la siguiente inquietud:
Cita: Hola compañeros quisiera que me indiquen como generar el método agregarPila(), Espero la respuesta Gracias.
Dando respuesta a dicha inquietud propongo lo siguiente:
Las pilas se basan en una lógica LIFO (Last In Firts Out - Ultimo en Entrar Primero en Salir). Para poder implementar la clase Lista, te recomiendo que crees una variable privada
puntero del tipo
int; o sea quedaría de la siguiente forma:
Código:
public class Lista {
/* Atributos de la Clase Lista */
private Object[] lista;
/* Object[] es un array de objetos quien va hacer el
* el que guarda los registros de cualquier tipo de Objeto. */
private int puntero;
/* es el puntero que va a manejar el array para poder
* ubicar posiciones. */
.
.
.
Me imagino que sabes como se declararía el constructor, tines que pasarle como parámetro el tamaño de ese vector e instanciar el array; además de instanciar el array se tiene que inicializar el puntero como inicalmente no contiene datos el array el puntero debe iniciar en 0 por default; no así en las colas, en el cual el puntero se inicaliza en el tamaño del array -1 (puntero = cola.length - 1).
Ahora si viene lo bueno, para declarar el método agregarPila() necesitas obligatoriamente un parámetro de tipo objeto, el método va a agregar ese objeto a la pila en la posición donde se encuentre el puntero; a parte de eso el puntero tiene que recorrer una posición más, tendrías que incrementar el puntero (puntero++) y el método debe retornar un valor de true or false, true cuando se haya agregado a la pila, false cuando no; También tienes que hacer el control de que si está lleno yas el array el puntero debe iniciar en 0 por default; no así en las colas, en el cual el puntero se inicaliza en el tamaño del array -1 (puntero = cola.length - 1).
Código:
.
.
.
public boolean agregarPila (Object o) {
/* pregunto si la pila está llena. */
if (puntero == pila.length) {
/* Si es que está lleno no se pueden agregar más registros, por lo
* tanto retorno falso. */
return false;
/* Caso Contrario */
} else {
/* Significa que la pila aún no está llena y puedo seguir
* agregando registros. Y agrego en la posición puntero. */
pila[puntero]=o;
/* Incremento el puntero para que se desplace hacia la siguiente
* posición. */
puntero++;
/* Retorno verdadero, porque se agregó el objeto. */
return true;
}
}
.
.
.
Si algo en el código no entiendes o no te compila, me lo dices.