Foro de elhacker.net

Programación => Java => Mensaje iniciado por: m@o_614 en 23 Octubre 2014, 03:55 am



Título: Pila dinamica
Publicado por: m@o_614 en 23 Octubre 2014, 03:55 am
Saludos, estoy tratando de hacer una Pila dinámica con una clase Pila y otra clase llamada nodoPila. Yo se que en las pilas las eliminaciones solo pueden ser por el tope de pila, o sea en el ultimo nodo, y es ahi donde tengo el problema en la función desapilar

Código
  1. class NodoPila{
  2. String elemento;
  3. NodoPila siguiente;
  4.  
  5. NodoPila(String simbolo){
  6. elemento = simbolo;
  7. siguiente = null;
  8. }
  9. }
  10. class Pila{
  11. private NodoPila primerNodo;
  12. private NodoPila tope;
  13.  
  14. Pila(){
  15. primerNodo = tope = null;
  16. }
  17.  
  18. public boolean estaVacia(){
  19. if(tope == null)
  20.   return true;
  21. else
  22.   return false;
  23. }
  24.  
  25. public void apilar(String simbolo){
  26. if(estaVacia())
  27.   primerNodo = tope = new NodoPila(simbolo);
  28. else
  29.   tope = tope.siguiente = new NodoPila(simbolo);
  30. }
  31.  
  32. public void desapilar(){
  33. NodoPila nodo;
  34. if(estaVacia())
  35.   System.out.println("Error: Lista vacia");
  36. else
  37.   ????????????;
  38. }
  39.  
  40. public void imprimirPila()
  41. {
  42. NodoPila nodo;
  43. for(nodo = primerNodo;nodo != null;nodo = nodo.siguiente)
  44.   System.out.println("["+nodo.elemento+"]");
  45. }
  46. }

no se como hacerle para que me elimine el tope sin necesidad de recorrer toda la lista hasta encontrar el ultimo nodo


Título: Re: Pila dinamica
Publicado por: Odai en 23 Octubre 2014, 05:14 am
Has pensado en la idea de una lista doblemente ligada ¿? :)
así cada nodo tendría una referencia al nodo anterior y al siguiente
Es una idea...