Está en la página 1de 19

Listas Enlazadas

(No confundir con la Colección List de


tipo ArrayList)
Listas Enlazadas
• Una lista enlazada es una colección o
secuencia de elementos dispuestos uno detrás
de otro,
• en la que cada elemento se conecta al
siguiente elemento por un “enlace” o
“referencia”.
Listas Enlazadas
• Consiste en una secuencia de nodos,
– en los que se guardan campos de datos (Libro,
Alumno, Teléfono, etc.)
– y una referencia o enlace al nodo siguiente.
• Un ejemplo es un procesador de textos, cada
linea tiene un contenido, y un apuntador al
siguiente renglón.
• O la lista de reproducción del Windows Media
Player, para saber cuál canción sigue.
• Cuando se termina la lista, se apunta a algo que
se llama FIN.
Listas Enlazadas
• El principal beneficio de las listas enlazadas
respecto a los vectores convencionales
– es que el orden de los elementos enlazados puede
ser diferente al orden de almacenamiento en la
memoria o el disco,
– permitiendo que el orden de recorrido de la lista
sea diferente al de almacenamiento.
Listas Enlazadas
• Un nodo se refiere a un objeto
que contiene información y una
referencia
– La información puede ser un dato
entero, double, Libro, Alumnos, etc.
– La referencia a apuntador es un
dato que indica cuál es el siguiente
elemento de la lista.

Apun
Información
tador
Listas Enlazadas
• Si la lista está vacía, el elemento inicio apunta
hacia el final.
• Como la locomotora pegada con el cabuz.
Ini
Listas Enlazadas
• Si se acopla un vagón, la locomotora se
conecta al vagón 1 y el vagón 1 al cabuz.

Ini e1
Listas Enlazadas
• Si se acopla otro vagón, ahora el vagón 1 se
conecta al vagón 2, y el vagón 2 al cabuz.

Ini e1 e2
Listas Enlazadas
• Si se acopla otro vagón, ahora el vagón 2 se
conecta al vagón 3, y el vagón 3 al cabuz.

Ini e1 e2 e3
Listas Enlazadas
• Y así sucesivamente hasta que se conecten n
elementos.

Ini e1 e2 e3 ...
Listas Enlazadas
• Y así sucesivamente hasta que se conecten n
elementos.

Ini e1 e2 e3 ... en
Listas Enlazadas
Listas Enlazadas
Listas Enlazadas
• Existen diferentes tipos de listas enlazadas: listas enlazadas
simples, listas doblemente enlazadas, listas enlazadas
circulares y listas enlazadas doblemente circulares.
• ¿Dónde se aplica eso?
– Listas enlazadas simples: Ej: Lista de reproducción de tus
canciones en le Windows Media Player, reproducción simple, y
termina en la última canción.
– Listas doblemente enlazadas: La lista de canciones, pero se le
puede poner que avance hacia atrás o hacia adelante (botones
de siguiente y anterior).
– Listas enlazadas circulares: Igual que la lista simple, pero
llegando al final apunta y se regresa de nuevo a la primera.
– Listas doblemente enlazadas circulares La combinación de todo
lo anterior.
Listas Enlazadas
• Matemáticamente, una lista es una secuencia de cero o más
elementos de un determinado tipo.
(a1, a2, a3, ... , an) donde n >= 0,
si n = 0 la lista es vacía.
• La implementación una Lista requiere, en primer lugar, declarar la
clase Nodo, en la que se combinarán sus dos partes: el dato
(entero, real, doble, carácter o referencias a objetos) y un enlace.
Además, la clase Lista con las operaciones y el atributo con la cabeza
de la lista. Las operaciones tendrán las siguientes funciones:
– Inicialización o creación.
– Insertar elementos en la lista.
– Eliminar elementos de la lista.
– Buscar elementos de la lista.
– Recorrer la lista enlazada.
– Comprobar si la lista está vacía.
Listas Enlazadas
Al inicio de la lista se coloca un nodo cabeza,
que solamente apunta hacia el siguiente nodo.
El último nodo de la lista se conecta a null.
Listas Enlazadas
• La Figura 8.6 muestra una lista a la que se accede con la
referencia cabeza;
• cada nodo está enlazado con el siguiente nodo.
• El último nodo, cola o final de la lista, no se enlaza con otro
nodo, por lo que su campo de enlace contiene la referencia
nulo, null.
• La palabra null representa la referencia nulo, que es una
constante especial de Java. Se puede utilizar null para
cualquier valor de referencia que no apunte a objeto
alguno. En este caso, al final de la lista.
Listas Enlazadas
• Cada referencia a un nodo debe ser declarada
como una variable referencia.
• Por ejemplo, si se mantiene una lista enlazada
con una referencia de cabecera y otra de cola,
se deben declarar dos variables referencia:
– Nodo cabeza, que representa el inicio
– Nodo cola, que representa el final
Inicio 5 enlace 1 enlace 8 enlace 20 enlace

naux enlace

1 enlace

nn enlace

Dato a Buscar: 22 Dato a Modificar: 8 Dato a Eliminar: 8


Recorrer la lista Nuevo valor: 33 Recorrer la lista
While nodo!=null Recorrer la lista While nodo!=null
If nodo.dato == 22 While nodo!=null If nodo.dato == 8
mensaje sí existe If nodo.dato == 8 Else
está en la posición cont nodo.dato = 33 mensaje no existe
break break
Else Else
mensaje no existe mensaje no existe

Siguiente clase: Miércoles 5


Entrega individual CRUD Límite domingo
23:59

También podría gustarte