Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (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
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...