La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.

Presentaciones similares


Presentación del tema: "Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos."— Transcripción de la presentación:

1 Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

2 Listas enlazadas Definición Una lista enlazada también recibe el nombre de "lista concatenada", "lista eslabonada" o "lista lineal". Una lista enlazada es una colección de elementos llamados nodos. Cada nodo contiene un dato y una referencia al siguiente nodo.

3 Listas enlazadas 23 Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza dato siguiente 99 dato siguiente

4 Listas enlazadas 23 6 99 Lista enlazada con 3 nodos. Los nodos tienen datos de tipo entero. Nodo 1 Dato: 23 Siguiente: Nodo 2 Nodo 2 Dato: 6 Siguiente: Nodo 3 Nodo 3 Dato: 99 Siguiente: null (indica que es el fin de la lista)

5 Listas enlazadas oscar kate sarah Lista enlazada con 3 nodos. Los nodos tienen datos de tipo String. Nodo 1 Dato: oscar Siguiente: Nodo 2 Nodo 2 Dato: kate Siguiente: Nodo 3 Nodo 3 Dato: sarah Siguiente: null

6 Listas enlazadas Definición Una lista enlazada es una estructura de datos dinámica que permite almacenar cualquier cantidad de nodos Las operaciones sobre una lista enlazada son: Crear lista Insertar nodo al inicio Eliminar nodo al inicio Imprimir datos Es una lista vacía?

7 Listas enlazadas Definición E A RE Al primer nodo se le llama cabecera y sirve como punto de referencia en la lista. No contiene ningún dato

8 Listas enlazadas Crear lista Al crear una lista, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null.

9 Listas enlazadas Insertar nodo al inicio( La lista está vacía ) W Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado

10 Listas enlazadas Insertar nodo al inicio( La lista no está vacía ) W Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando AW

11 Listas enlazadas Eliminar nodo al inicio AW W Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo

12 Listas enlazadas Imprimir datos

13 Listas enlazadas Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null

14 Listas enlazadas Cada nodo se representa por medio de dos campos: Campo dato: contiene el valor del nodo Campo siguiente: indica cuál es el nodo con el que se enlaza class Nodo{ Object dato; Nodo siguiente; Nodo(Object o) { dato=o; siguiente=null; } Nodo(Object o, Nodo n) { dato=o; siguiente=n; }

15 Listas enlazadas Crear lista Al crear una lista, se crea el nodo cabecera. El nodo cabecera tiene como dato null y como siguiente null. class Lista{ Nodo cabecera; Lista() { cabecera=new Nodo(null); }... }

16 Listas enlazadas Está una lista vacía? Cuando la lista está vacía el campo siguiente de la cabecera es null public boolean estaVacia(){ if (cabecera.siguiente==null) { return true; } else { return false; }

17 Listas enlazadas Insertar nodo al inicio ( La lista está vacía) Se crea un nuevo nodo con el dato que se desee colocar y con siguiente null El campo siguiente del nodo cabecera pasa de ser null a ser el nodo que estamos insertado void insertar(Object o) { Nodo nuevo=new Nodo(null); if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; }

18 Listas enlazadas Insertar nodo al inicio ( La lista no está vacía) Se crea un nuevo nodo con el dato que se desee colocar y en su campo siguiente se establece el siguiente del nodo cabecera Al nodo cabecera se le asigna como siguiente el nodo que estamos insertando if ( estaVacia() ) { nuevo=new Nodo(o); nuevo.siguiente=null; cabecera.siguiente=nuevo; } else { nuevo=new Nodo(o); nuevo.siguiente=cabecera.siguiente; cabecera.siguiente=nuevo; }

19 Listas enlazadas Eliminar nodo al inicio Al nodo cabecera se le asigna como siguiente, el siguiente del primer nodo public void eliminar() { Nodo borrar=cabecera.siguiente; cabecera.siguiente=borrar.siguiente; }

20 Listas enlazadas Imprimir datos public void imprimir() { Nodo actual=new Nodo(null); if (estaVacia()) System.out.println(“La lista esta vacia"); else { actual=cabecera; System.out.println("\n"); while( actual != null){ System.out.print( actual.dato ); actual=actual.siguiente; }

21 Listas enlazadas


Descargar ppt "Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos."

Presentaciones similares


Anuncios Google