martes, 15 de octubre de 2013

Pila

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