Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 10-nov-2005, 03:37   #1 (permalink)
monorendon no se puede cailificar en este momento
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Enviar un mensaje por MSN a monorendon
Parpadear 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.
__________________
Sincerely,

Guido Rendón
monorendon está desconectado   Responder Citando
Antiguo 10-nov-2005, 13:53   #2 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.495
Y no es mas rapido usar la clase java.util.Stack?

Digo :)
GreenEyed está desconectado   Responder Citando
Antiguo 10-nov-2005, 14:08   #3 (permalink)
monorendon no se puede cailificar en este momento
 
Fecha de Ingreso: octubre-2005
Ubicación: En mi casita
Mensajes: 100
Enviar un mensaje por MSN a monorendon
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.
__________________
Sincerely,

Guido Rendón
monorendon está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 4 votos, 2,50 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:50.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93