Listas Enlazadas Lab
Listas Enlazadas Lab
Listas Enlazadas Lab
Un nodo es una estructura que consta de datos y direccin de memoria donde se encuentra el siguiente nodo. Una lista es una secuencia de nodos enlazados. Es decir que un nodo tiene la direccin de memoria dnde se encuentra el siguiente nodo. PROCESO En el caso de Java, cada nodo ser representado por un objeto, por lo que una lista enlazada estar conformada por una secuencia enlazada de objetos. El proceso para trabajar con nodos es el sgte: 1. 2. 3. 4. 5. Definir la estructura del nodo, en nuestro caso definir la clase, Declarar los objetos Crear los objetos Ingresar datos vlidos en los objetos Enlazar objetos
El siguiente programa especifica esta secuencia (hasta el paso 4) import java.io.*; class listas1 { //declaramos la clase nodo public static class nodo { int dato; nodo sgte; } public static void main (String []arg) { nodo a,b,c,d,e; //declaramos a=new nodo(); //creamos con el constructor por defecto a.dato=1; a.sgte=null; System.out.println("a direccion "+a+" dato "+a.dato+" direccion sgte "+a.sgte); b=new nodo(); //creamos con el constructor por defecto b.dato=2; b.sgte=null; System.out.println("b direccion "+b+" dato "+b.dato+" direccion sgte "+b.sgte); c=new nodo(); //creamos con el constructor por defecto
PROGRAMACION III c.dato=3; c.sgte=null; System.out.println("c direccion "+c+" dato "+c.dato+" direccion sgte "+c.sgte);
d=new nodo(); //creamos con el constructor por defecto d.dato=4; d.sgte=null; System.out.println("d direccion "+d+" dato "+d.dato+" direccion sgte "+d.sgte); } } Produce la sgte salida: a direccion listas1$nodo@15d56d5 dato 1 direccion sgte null b direccion listas1$nodo@efd552 dato 2 direccion sgte null c direccion listas1$nodo@19dfbff dato 3 direccion sgte null d direccion listas1$nodo@10b4b2f dato 4 direccion sgte null En imgenes algo as:
Note que en las figura los nodos estn sueltos, no fueron enlazados: Ejercicios No 1.- Modifique el cdigo del programa para obtener una lista con el objeto a como cabecera.. El segundo ejemplo permite crear una lista enlazada, se adicionan nodos por la cabecera import java.io.*; class listas2 { public static class nodo { int dato; nodo sgte; } public static void main (String []arg)throws IOException { BufferedReader w=new BufferedReader (new InputStreamReader(System.in)); nodo Cab_a=null; //declaramos la cabecera inicializada en null int n; do{ System.out.print("LISTAS \n 1.-Agregar nodos en la cabecera\n 2.-Listar todo \n 3.-salir \n?");
PROGRAMACION III n=Integer.parseInt(w.readLine()); switch(n){ case 1: Cab_a=add_cab(Cab_a); break; case 2: listado(Cab_a); break; } }while(n!=3);
} public static nodo add_cab(nodo z)throws IOException { BufferedReader w=new BufferedReader (new InputStreamReader(System.in)); nodo nuevo=new nodo(); System.out.println("Dato? "); nuevo.dato=Integer.parseInt(w.readLine()); nuevo.sgte=z; return (nuevo); } public static void listado(nodo a) { while(a!=null){ System.out.println("a direccion "+a+" dato "+a.dato+" direccion sgte "+a.sgte); a=a.sgte; } } }
La Lista quedara: