Implementación en java <Pila>
public class Nodo<tipo> {
public tipo dato;
private Nodo<tipo> siguiente;
public Nodo(tipo Dato) {
dato = Dato;
siguiente = null;
}
public void conectar(Nodo<tipo> elSiguiente) {
siguiente = elSiguiente;
}
public Nodo<tipo> getSiguiente() {
return siguiente;
}
}
public class Pila<tipo> {
Nodo<tipo> cima;
public Pila() {
cima = null;
}
public int tamano() {
Nodo<tipo> lectorAuxiliar = cima;
int contadorDeDatos = 0;
while (lectorAuxiliar != null) {
contadorDeDatos++;
lectorAuxiliar = lectorAuxiliar.getSiguiente();
}
return contadorDeDatos;
}
public void apilar(tipo datoNuevo) {
Nodo<tipo> nuevo = new Nodo<tipo>(datoNuevo);
nuevo.conectar(cima);
cima = nuevo;
}
public tipo desapilar() {
tipo dato = cima.dato;
cima = cima.getSiguiente();
return dato;
}
public tipo getCima() {
return cima.dato;
}
public boolean estaVacia() {
return cima == null;
}
public String toString() {
Nodo<tipo> lectorAuxiliar = cima;
String respuesta = "IN/OUT <->";
while (lectorAuxiliar != null) {
respuesta += " [" + lectorAuxiliar.dato.toString() + "] ";
lectorAuxiliar = lectorAuxiliar.getSiguiente();
}
return respuesta;
}
}
No hay comentarios:
Publicar un comentario