Cita:
Dando respuesta a dicha inquietud propongo lo siguiente:Hola compañeros quisiera que me indiquen como generar el método agregarPila(), Espero la respuesta Gracias.
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:
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).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. */ . . .
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:
Si algo en el código no entiendes o no te compila, me lo dices. . . . 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; } } . . .