Está en la página 1de 14

Estructura

de Datos
Semana 3 – Listas doblemente enlazadas
Objetivos
• Desarrollar visualmente listas doblemente enlazadas y
sus respectivos algoritmos (operaciones).

• Conocer ventajas y desventajas de utilizar listas


doblemente enlazadas y en que casos se pueden usar.

• Desarrollar listas doblemente enlazadas en c++ y sus


operaciones.
Listas Doblemente Enlazadas - Nodo

Estructura de Nodo:

- Anterior (Previous)
- Data (Value)
- Siguiente (Next)
Listas Doblemente Enlazadas
Listas Doblemente Enlazadas
(dos punteros)
Representacion en Memoria
Lista doblemente enlazada
consume mas espacio, por lo
que operaciones de insercion y
borrar son mas costosas.

Pero podemos manipular


fácilmente los elementos de la
lista ya que la lista mantiene
punteros en ambas direcciones
Operaciones
• Insertar
al inicio, al final, despues o antes de cierto nodo
• Borrar
al inicio, al final, despues o antes de cierto nodo
• Buscar
Devolver ubicación, true o false, else null
• Imprimir 10<==>20<==>30<==>40<==>50<==>NULL
• Ordenar (Sorting)
• Reverse
Insertar (al inicio)
El anterior al nuevo nodo (N) se establece en null. Head
apunta al nuevo nodo. El siguiente puntero de N ahora
apunta a N1 y el anterior de N1 que antes apuntaba a
Nulo ahora apunta a N.
Insertar (en una posicion)
Cuando tenemos que añadir un nodo antes o después de un
nodo en particular, cambiamos los punteros anterior y siguiente
de los nodos anterior (N2) y posterior (N3) para que apunten
adecuadamente al nuevo nodo. Además, los punteros de los
nuevos nodos apuntan adecuadamente a los nodos existentes.
Borrar
Reverse
Casos de uso de Listas
Doblemente Enlazadas

• Historial/caché del navegador - La caché del navegador tiene una


colección de URLs y se puede navegar usando los botones de
avanzar y retroceder es otro buen ejemplo que se puede
representar como una lista doblemente enlazada.

• En Sistemas Operativos, los MRU (Most Recently Used) pueden


construirse con listas doblemente enlazadas.
Conclusiones
• Se desarrollaron visualmente operaciones de listas doblemente
enlazadas para enriquecer el desarrollo de algoritmos.

• Existe un costo en memoria y complejidad en operaciones basicas


al momento de implementar listas doblemente enlazadas, pero se
puede manipular la lista facilmente por los apuntadores en ambas
direcciones.

• Las listas doblemente enlazadas tienen uso en desarrollo de


sistemas operativos y en navegadores como en otros casos.
Bibliografía
Aho, Alfred. 1988. Estructura de Datos y Algoritmos.
Addison-Wesley Iberoamericana: Sistemas Técnicos de
Edición.

• Creditos de imagenes
https://www.javatpoint.com/doubly-linked-list
https://www.softwaretestinghelp.com/doubly-linked-list-2/

También podría gustarte