jueves, 14 de noviembre de 2013

Lista Enlazada

Código.

Clase principal:
public class Main {
    public static void main(String[] args)
    {
        ListaEnlazada miLista = new ListaEnlazada();
        miLista.InsertarEnPrimero (10);
        miLista.InsertarEnPrimero (15);
        miLista.InsertarEnPrimero (30);
        miLista.InsertarEnPrimero (50);
        miLista.InsertarEnPrimero (40);
        miLista.InsertarEnPrimero (60);
        System.out.println(miLista.Listar());
        System.out.println("borrar");
        miLista.BorrarUltimo();
        miLista.BorrarPrimero();
        //miLista.BorrarPosicion(2);
        System.out.println(miLista.Listar());       
    }  
}

Clase Nodo:
public class Nodo {
    int info;    
    public Nodo siguiente;
    public Nodo anterior;  
    public Nodo (int dato){
    info = dato;
    anterior = null;
    siguiente = null;
            }
    public void VerNodo() {
    System.out.println ("{ "+info+"}");
      }

}

Clase Lista Enlazada:
public class ListaEnlazada {
    Nodo cabeza;
    Nodo cola;    
    public ListaEnlazada() {
    cabeza = null;
    cola = null;
         }
    public boolean vacia() {
    if (cabeza == null) {
    return(true);
                }
    else {
    return (false);
    }
    }
    //Insertar en cabeza
    public void InsertarEnPrimero (int Dato) {
    Nodo Temporal = new Nodo (Dato); //Crea el nodo temporal
    if (vacia()){
        cabeza = Temporal;
        cola = Temporal;
            }
    else {
    Temporal.siguiente = cabeza;
    cabeza.anterior = Temporal;
    cabeza = Temporal;
    }
    }
    public void InsertarAlFinal (int Dato){
    Nodo Temporal = new Nodo(Dato); 
     if (vacia()){
        cabeza = Temporal;
        cola = Temporal;
            }
    else {
    cola.siguiente = Temporal;
    Temporal.anterior = cola;
    cola = Temporal;
    }
    }    
   public void BorrarPrimero(){
   cabeza = cabeza.siguiente;
   cabeza.anterior = null;   
   }
    public void BorrarUltimo(){
   if (cola.anterior == null){
        cabeza = null;
        cola = null;
   }
   else {
       cola = cola.anterior;
       cola.siguiente = null;
          }
    }
    public String Listar(){
    String Dato = "";
    Nodo axu = cabeza ;
    while (axu!= null){
        Dato+="{" +axu.info+ "}";
        axu = axu.siguiente;
    }
        return (Dato);
   
      }
    public void BorrarPosicion (int pos) {
    Nodo anterior = cabeza;
    Nodo actual = cabeza;
    int k=0;
    if (pos>0){
    while (k!=pos && actual.siguiente != null){
    anterior = actual;
    actual= actual.siguiente;
    k++;
    System.out.println(" k " + k);
       }
    anterior.siguiente = actual.siguiente;       
            }   
    }
  

}

Imágenes.
Ejecutando:


Borrando el primer dato:



Borrando la Posición 2:


Borrando la ultima posición:




No hay comentarios:

Publicar un comentario