Foros del Web » Programación para mayores de 30 ;) » Java »

Pilas en Java

Estas en el tema de Pilas en Java en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/11/2005, 04:37
Usuario no validado
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Antigüedad: 18 años, 6 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.
  #2 (permalink)  
Antiguo 10/11/2005, 14:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Y no es mas rapido usar la clase java.util.Stack?

Digo :)
  #3 (permalink)  
Antiguo 10/11/2005, 15:08
Usuario no validado
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Antigüedad: 18 años, 6 meses
Puntos: 0
Es que aun estamos viendo codigo sencillo, osea, como para saber como se manejan los punteros en las colas y en las pilas... si quieres puedes aportar con otras ideas, no hay problema, gracias por tu colaboración.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 16:35.