Veamos la demo de la lista completa


A continuación veremos los códigos empleados para la realización de una lista que podemos estarle añadiendo datos.

En esta lista ingresaremos números en diferentes ordenes podemos ingresarlos al final o podemos ingresarlos al inicio de la lista todo depende de nuestra imaginación, también podremos eliminar elementos de ella tanto de el final o de una posición en especifica.

Tomando en cuenta que anteriormente se creo la parte de los nodos retomaremos los mismos códigos utilizados en el post anterior:

Primero crearemos archivos de clases a uno lo llamaremos nodos y al otro lo llamaremos lista:

En el primero crearemos nuestra estructura de los nodos

package practica_lista;

public class Nodo {
    public int dato;
    public Nodo siguiente;//puntero de enlace
    
    
    public Nodo (int d){//Crear un nodo final
        this.dato=d;
        this.siguiente=null;
    }
    public Nodo(int d, Nodo n){//Crear un nodo siguiente al inicio de la lista
    
        dato=d;
        siguiente=n;//Siguiente sera el inicio 
    }
}
 

Luego en la siguiente clase que generamos se crearan todos los elementos desde mostrar los datos hasta eliminar datos de la lista.
Te dejamos la estructura de como ira 


package practica_lista;


public class Lista {
    //Creacion de dos punteros
    //Haciendo referencia al inicio y al final 
    protected Nodo inicio,fin;
    
    public Lista(){
        inicio=null;
        fin=null;
    }
    //Metodo agregar nodo al inicio de la lista 
    public void agregarInicio(int elemento){
        //Crear nodo
        inicio=new Nodo(elemento,inicio);
        
        if(fin==null){
            fin=inicio;
        }
    }
    
    
    //Metodo para vaciar listaç
    public boolean estaVacia(){
        if(inicio ==null ){
            return true;    
        }else {
            return false;
        }
    }
    
    //Metodo para agregar nodo al final 
    public void agregarAlFinal(int elemento){
        if(!estaVacia()){
            fin.siguiente = new Nodo(elemento);
            fin=fin.siguiente;
        }else{
            inicio=fin= new Nodo(elemento);
        }
    }
    
    
    //Mostrando datos 
    public void MostrarLista(){
        Nodo recorrer=inicio;
        System.out.println("/n");
        
        while(recorrer != null){
            System.out.println("["+recorrer.dato+"]");
            recorrer=recorrer.siguiente;
        }
    
    }
    
    //Metodo para eliminar del inicio 
    public int borrarDeInicio(){
        int elemento = inicio.dato;
        if(inicio==fin){
            inicio=null;
            fin=null;
        }else{
            inicio=inicio.siguiente;
        }
        return elemento;
    
    }
   
    //Metodo para borrar del final
    
    public int borrarDelFinal(){
        int elemento=fin.dato;
        if(inicio==fin){
            inicio=fin=null;
        }else{
            Nodo temporal=inicio;
            while(temporal.siguiente !=fin){
                temporal = temporal.siguiente;
            }
            fin=temporal;
            fin.siguiente = null;
        }
        
        return elemento;
    }
    //Metodo para eliminar un elemento especifico
    public void borrarEspecifico(int elemento){
        if(!estaVacia()){
            if(inicio==fin && elemento == inicio.dato){
                inicio= fin =null;
            }else if(elemento==inicio.dato){
                inicio=inicio.siguiente;
            }else{
                Nodo anterior, temporal;
                anterior=inicio;
                temporal=inicio.siguiente;
                
                while(temporal !=null && temporal.dato !=elemento){
                    anterior= anterior.siguiente;
                    temporal=temporal.siguiente;
                }
                if(temporal!=null){
                    anterior.siguiente=temporal.siguiente;
                    if(temporal==fin){
                        fin=anterior;
                    }
                }
            }
        }
    }
}


Pega este código en tu compilador en el siguiente post te mostramos como imprimir los datos que estamos generando

Comentarios

Entradas populares