Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2005, 04:37
monorendon
Usuario no validado
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Antigüedad: 19 años, 2 meses
Puntos: 0
Pilas en Java

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.