Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/04/2011, 07:39
Avatar de Heimish2000
Heimish2000
 
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Invertir pila en java

Es que en el metodo invierte lo unico que estás haciendo es desapilar, nada más.

Tu problema es que el método desapila no devuelve la cima, y es lo que tienes que coger antes de desapilar. Vamos, el metodo sería algo así. Por cierto, mejor que devuelva una pila que no un Object (eso para todos los métodos que tengas, cuando sepas el tipo de dato que devuelve, mejor indicarlo y no poner el genérico)

Por otra parte, en tu main, estas llamando al método invierte, que devuelve la pila invertida, pero no la estás recogiendo. En el método que te pongo, el resultado de la inversión se guarda en la propia pila, no devolvería nada el método, pero tienes que tener estas cosas en cuenta.


Código Java:
Ver original
  1. public void invierte() {
  2. Apilar pila2 = new Apilar();
  3. while (!pilar.esbuida()){
  4. pila2.apila(pilar.cim());
  5. pilar.desapila();
  6. }
  7. pilar = pila2;
  8. }