Hola a todos, hoy os explicare la mejor forma de recorrer una lista enlazada.
Antes de empezar, os recomiendo usar la lista enlazada que hemos proporcionado en este blog.
Recorrer una lista enlazada con los métodos que tenemos, es sencillo. Tenemos que tener en cuenta que para recorrer todos los elementos, tenemos que ir borrando elementos o por la posicion.
Os dejo un simple ejemplo:
/** * @author DiscoDurodeRoer */ public class Ejemplo { public static void main(String[] args) { //Creamos la lista ListaEnlazada lista = new ListaEnlazada(); //Insercion de datos lista.Insertar_Primero("Elemento 1"); lista.Insertar_Primero("Elemento 2"); lista.Insertar_Primero("Elemento 3"); //Creamos una lista enlazada auxiliar ListaEnlazada aux = new ListaEnlazada(); while(!lista.Esta_Vacia()){ //Mostramos por consola, el primer elemento de la lista System.out.println(lista.Primero().toString()); //Insertamos en la lista auxiliar // el primer elemento de la lista original // (añadimos por el final, no por el principio) aux.Insertar_Ultimo(lista.Primero().toString()); //Quitamos el primer elemento lista.Quitar_Primero(); } System.out.println("Número de elementos de lista antes de la asignación: "+lista.Cuantos_Elementos()); //La lista auxiliar se copia a la lista original //Haciendo que la lista original vuelva al estado original lista = aux; System.out.println("Número de elementos de lista despues de la asignación: "+lista.Cuantos_Elementos()); //La lista auxiliar se desvincula aux = null; } }
Esta es una de las mejores formas de recorrer una lista enlazada. También podemos usar el método devYBorrarPrimero(), eso si, debes guardar el valor que devuelve en objeto del mismo tipo de la lista enlazada. Por ejemplo:
/** * @author DiscoDurodeRoer */ public class Ejemplo { public static void main(String[] args) { //Creamos la lista ListaEnlazada lista = new ListaEnlazada(); //Insercion de datos lista.Insertar_Primero("Elemento 1"); lista.Insertar_Primero("Elemento 2"); lista.Insertar_Primero("Elemento 3"); //Creamos una lista enlazada auxiliar ListaEnlazada aux = new ListaEnlazada(); while(!lista.Esta_Vacia()){ //Devuelve y borra String elemento=lista.devYBorrarPrimero(); //Mostramos por consola, el primer elemento de la lista System.out.println(elemento); //Insertamos en la lista auxiliar // el primer elemento de la lista original // (añadimos por el final, no por el principio) aux.Insertar_Ultimo(elemento); } System.out.println("Número de elementos de lista antes de la asignación: "+lista.Cuantos_Elementos()); //La lista auxiliar se copia a la lista original //Haciendo que la lista original vuelva al estado original lista = aux; System.out.println("Número de elementos de lista despues de la asignación: "+lista.Cuantos_Elementos()); //La lista auxiliar se desvincula aux = null; } }
Espero que os sea de ayuda. Si tenéis dudas, preguntad, estamos para ayudarte.
Deja una respuesta