cual es la salida del siguiente segmento de codigo?????
alguien podria ayudarme!!!!! en estos dias me he dedicado a leer algo sobre pilas y colas, me encontre por ahi un problemita sobre pilas pero como aun estoy introduciendome al tema de pilas no entiendo muy bien.. les posteo el codigo...
Pila p = new Pila();
int x=4;
p.push(x);
System.out.Println("\n" + p.top());
y = p.pop();
p.push(32);
p.push(p.pop());
do{
System.out.println("\n"+ p.pop());
}while(!p.isEmpty());
-----------------------------------------------------------------------------------
por lo que tengo entendido push se utiliza para agregar un elemento a la pila, y pop para remover un elemento de la pila, isEmpty nos dice la pila esta vacia... pero no se para que se utiliza top??????
me gustaria que me explicaran como cual seria el funcionamiento basico del segmento de codigo... ya que supuestamente donde encontre el problema dice buscar cual es la salida del segmento de codigo tomando en cuenta que el elemento es de tipo int?????
no se si me doy a entender....!!!
de lo poco que entiendo es que se inicializa una variable de tipo int con el valor de 4, a la pila ya instanciada se le agrega el elemento x=4, se manda a escribir en consola pero es lo que no entiendo muy bien que se manda a imprimir, y a la variable Y (no se si eso se puede o es un error en el codigo de que se le asigna el poder quitarle un elemento a la pila).... despues en ""p.push(p.pop());"" se le agrega o se le quita un elemento no entiendo.... y en el ciblo mientreas la pila no este vacia se le va quitanto los elementos.... eso entendi pero aun me pierdon con lo que supuestamente es la salida del segmento de codigo... si alguien pudiera explicarme como funciona y cual seria la salida del codigo les estaria muy agradecidos porque he estado quemando neuronas en este codigo!!!! Gracias de antemano por su tiempo.. espero puedan enterderme porque io creo que hago mas grande el problema de lo que realmente es... weno en pocas palabras no puedo explicarme...heheheheheGracias y exitos!!!!
- Inicie sesión o regístrese para enviar comentarios
Error?
segun lo que dices el metodo push mete un valor a la pila y tiene un argumento de entrada que es un entero, cuatro lineas mas abajo intentas hacer un push pero con agumento de entrada es un metodo
p.push(p.pop());
y por lo que veo este metodo no regresa nungun valor por lo que marcaria error cuando lo intentes compilar.... espero que sea lo suficientemete claroSugerencia usa las etiquetas code /code
int x=4;
p.push(x);
System.out.Println("\n" + p.top());
y = p.pop();
p.push(32);
p.push(p.pop());
do{
System.out.println("\n"+ p.pop());
}while(!p.isEmpty());
para tu código
@Pronovato: top, es
@Pronovato: top, es generalmente una funcion que regresa el valor que está hasta "arriba" ( top ) de la pila, y que es el único visible ( imagina una pila de tortillas, solamente puedes sacar la de hasta arriba, "top" te muestra cual es, sin sacarla )
Lo de la y sería un error en Java, por que no está declarada, si fuera:
No habría problema por que estariamos declarandola e inicializandola
Con
p.push( p.pop() );
lo que se está haciendo es sacar un elemento ( p.pop() ) y luego meterlo, claro es es valido, no hay razón para que no lo fuera, sería igua a escribir:p.push( z );
Entonces:
( ouch creo que quedo formateado feo, pero se entiende )
Preguntas?
Todo Claro OscarRyz y ArenasMx!!!!! Gracias
Gracias OscarRyz todo me a quedado muxo mas claro, me perdia donde se y = p.pop(); porque no sabia si eso se podia hacer y ps ahora que me lo explicaste ps si esta claro que si se le asigna el valor que se extrae y no esta declarada la variable seria un error de compilacion... me quedo muy claro Gracias por la Ayuda igualmente a "ArenasMx" Gracias por la Ayuda me a servido de mucho ya que ps estoy introduciendome a algo nuevo y ps siempre al principio todo se torna gris y no se ven claras las cosas...hehehehehe.. Gracias por Todo =0)