Pila dinamica

Iniciado por m@o_614, 23 Octubre 2014, 03:55 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

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 (java) [Seleccionar]
class NodoPila{
String elemento;
NodoPila siguiente;

NodoPila(String simbolo){
elemento = simbolo;
siguiente = null;
}
}
class Pila{
private NodoPila primerNodo;
private NodoPila tope;

Pila(){
primerNodo = tope = null;
}

public boolean estaVacia(){
if(tope == null)
   return true;
else
   return false;
}

public void apilar(String simbolo){
if(estaVacia())
   primerNodo = tope = new NodoPila(simbolo);
else
   tope = tope.siguiente = new NodoPila(simbolo);
}

public void desapilar(){
NodoPila nodo;
if(estaVacia())
   System.out.println("Error: Lista vacia");
else
   ????????????;
}

public void imprimirPila()
{
NodoPila nodo;
for(nodo = primerNodo;nodo != null;nodo = nodo.siguiente)
   System.out.println("["+nodo.elemento+"]");
}
}


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

Odai

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...
Tengo demasiadas fantasías para ser una ama de casa.
Marilyn Monroe