SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Listas encadenadas

     Apoyo SSD5
Una Estructura Encadenada
Una lista encadenada almacena una
secuencia lineal de elementos.
Usando una lista encadenada y sus
operaciones asociadas, podemos
construir, manipular y mantener una lista
de elementos



                 Mtl Lourdes Cahuich        2
Listas encadenadas
Las listas encadenadas comparten
muchas de las mismas operaciones de los
vectores
Ambas estructuras de datos soportan la
inserción y eliminación de elementos,
recorrido de elementos, y otras
operaciones básicas


               Mtl Lourdes Cahuich    3
Listas encadenadas
La eficiencia de ciertas operaciones difiere
entre las listas encadenadas y los
vectores.
Por ejemplo, la operación asociada con
eliminar el primer elemento es más
eficiente en una lista encadenada que en
un vector


                 Mtl Lourdes Cahuich       4
Listas encadenadas
Por otro lado, acceder a un elemento
aleatorio en una secuencia almacenada
en un vector es más eficiente que en una
lista encadenada.
Estas diferencias en eficiencia están
basadas en la forma en que cada
estructura de datos almacena elementos
en la memoria.

                Mtl Lourdes Cahuich        5
Almacenamiento en listas
         encadenadas


Almacenamiento en el vector




Almacenamiento en la lista
                Mtl Lourdes Cahuich   6
Listas encadenadas
La referencia es típicamente conocida
como quot;cadenaquot;, lo cual explica el nombre
de “Lista encadenada” o “linked list”
Es importante observar que se requiere
memoria extra para almacenar la cadena
para cada elemento de la lista.
Este requerimiento de memoria adicional
es una diferencia fundamental entre las
listas encadenadas y los vectores
                Mtl Lourdes Cahuich        7
Listas encadenadas
Cuando los elementos son almacenados
un lugares contiguos de la memoria, el
acceso aleatorio de elementos es eficiente
porque la implantación puede computar
directamente el lugar de cualquier
elemento
El almacenamiento contiguo en la
memoria tiene un impacto adverso en
otras operaciones

                Mtl Lourdes Cahuich      8
Listas encadenadas
El almacenamiento no-contiguo también
tiene sus ventajas y desventajas.
Una ventaja de una lista encadenada es
que podemos eliminar o agregar un
elemento simplemente reacomodando las
ligas o cadenas



               Mtl Lourdes Cahuich       9
Listas encadenadas
Por otro lado, el acceso aleatorio de
elementos en una lista encadenada no es
tan eficiente como lo es en un vector.
Para acceder a un elemento específico en
una lista encadenada, debemos recorrer
todos los elementos desde el inicio hasta
que encontremos el elemento que
buscamos.

                Mtl Lourdes Cahuich     10
Listas encadenadas
Esto se debe a que el uso de un
almacenamiento no-contiguo evita calcular
fácilmente donde está almacenado un
elemento específico




                Mtl Lourdes Cahuich     11
Cómo Encadenar Elementos
Como vimos anteriormente, almacenar en
memoria sólo los datos del elemento no
es suficiente para mantener la estructura
de una lista encadenada
Cada elemento debe también indicar
donde se encuentra localizado el siguiente
elemento


                Mtl Lourdes Cahuich      12
Cómo Encadenar Elementos
Como estamos trabajando con lugares de
memoria, encadenar los elementos
contenidos en una lista encadenada es
una aplicación perfecta para los
apuntadores




               Mtl Lourdes Cahuich       13
Mtl Lourdes Cahuich   14
Cómo Encadenar Elementos
Observa que el apuntador asociado con el
último elemento está establecido como un
apuntador nulo.
Esta es una técnica estándar usada para
denotar el último elemento de una lista




                Mtl Lourdes Cahuich    15
Mtl Lourdes Cahuich   16
Cómo Encadenar Elementos
Un nodo en una lista encadenada
contiene los datos para un elemento y
cualquier resguardo de información
necesario para mantener la
representación de la lista




                Mtl Lourdes Cahuich     17
Cómo Encadenar Elementos
La estructura representada en la figura
anterior es conocida como una lista
sencillamente-encadenada (singly-linked
list) debido a que solamente existe una
cadena para cada nodo.




                Mtl Lourdes Cahuich       18
Cómo Encadenar Elementos
Como sólo existe una cadena para cada
nodo, podemos recorrer una lista
sencillamente-encadenada solamente del
frente hacia atrás.




               Mtl Lourdes Cahuich       19
Listas doblemente
   encadenadas
Listas doblemente encadenadas
Para facilitar el recorrido de una lista en
cualquier dirección, podemos agregar un
apuntador adicional a cada nodo, que
apunte al nodo anterior de la lista.




                  Mtl Lourdes Cahuich         21
Listas doblemente encadenadas
Cada nodo tiene un nuevo apuntador que
hace referencia al nodo anterior de la lista.
Este tipo de lista encadenada es conocida
como lista doblemente-encadenada.
Una lista doblemente-encadenada nos
permite movernos hacia adelante y hacia
atrás en la lista.


                  Mtl Lourdes Cahuich       22
Mtl Lourdes Cahuich   23

Más contenido relacionado

La actualidad más candente (14)

Listas (java)
Listas (java)Listas (java)
Listas (java)
 
Actividad diapositiva.pptx
Actividad diapositiva.pptxActividad diapositiva.pptx
Actividad diapositiva.pptx
 
CONSECTOS DE BASE DE DATOS JULIANA.pptx
CONSECTOS DE BASE DE DATOS JULIANA.pptxCONSECTOS DE BASE DE DATOS JULIANA.pptx
CONSECTOS DE BASE DE DATOS JULIANA.pptx
 
Archivos
ArchivosArchivos
Archivos
 
Archivos
ArchivosArchivos
Archivos
 
Archivos
ArchivosArchivos
Archivos
 
Archivos
ArchivosArchivos
Archivos
 
Archivos
ArchivosArchivos
Archivos
 
Archivos
ArchivosArchivos
Archivos
 
Plantilla con-normas-icontec
Plantilla con-normas-icontecPlantilla con-normas-icontec
Plantilla con-normas-icontec
 
Archivo
ArchivoArchivo
Archivo
 
Resumen Analítico.
Resumen Analítico. Resumen Analítico.
Resumen Analítico.
 
Conceptos básicos de ACCESS.
Conceptos básicos de ACCESS.Conceptos básicos de ACCESS.
Conceptos básicos de ACCESS.
 
Archivos
ArchivosArchivos
Archivos
 

Destacado

8 eog00
8 eog008 eog00
8 eog00luis
 
8semana ufmg
8semana ufmg8semana ufmg
8semana ufmgenege
 
8th PreAlg - Jan25
8th PreAlg - Jan258th PreAlg - Jan25
8th PreAlg - Jan25jdurst65
 
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...GlobalEnvironmentCentre
 
8 herramientas que llevaron a merca bici al éxito
8 herramientas que llevaron a merca bici al éxito8 herramientas que llevaron a merca bici al éxito
8 herramientas que llevaron a merca bici al éxitoMateo Arango Guerrero
 
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...RBFHealth
 
8th PreAlg - March14
8th PreAlg - March148th PreAlg - March14
8th PreAlg - March14jdurst65
 
8mei aceh
8mei aceh8mei aceh
8mei acehepaper
 
8th Alg - L6.2--Jan9
8th Alg - L6.2--Jan98th Alg - L6.2--Jan9
8th Alg - L6.2--Jan9jdurst65
 
8NE Lesson 12 plan
8NE Lesson 12 plan8NE Lesson 12 plan
8NE Lesson 12 planJeremy Tang
 
8NE Lesson 12 PPT
8NE Lesson 12 PPT8NE Lesson 12 PPT
8NE Lesson 12 PPTJeremy Tang
 
8th Annual Maritime Homeland Security Summit
8th Annual Maritime Homeland Security Summit8th Annual Maritime Homeland Security Summit
8th Annual Maritime Homeland Security Summitcassie111
 

Destacado (20)

8. echinodermata
8. echinodermata8. echinodermata
8. echinodermata
 
8.effects revised
8.effects revised8.effects revised
8.effects revised
 
8 eog00
8 eog008 eog00
8 eog00
 
8 Objectifs 2009 2010
8 Objectifs 2009 20108 Objectifs 2009 2010
8 Objectifs 2009 2010
 
8 mars 2012 ihest
8 mars 2012 ihest8 mars 2012 ihest
8 mars 2012 ihest
 
8semana ufmg
8semana ufmg8semana ufmg
8semana ufmg
 
8th PreAlg - Jan25
8th PreAlg - Jan258th PreAlg - Jan25
8th PreAlg - Jan25
 
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...
Achievements of the On-Going JST - JICA "Wildfires and Carbon Management in P...
 
8 herramientas que llevaron a merca bici al éxito
8 herramientas que llevaron a merca bici al éxito8 herramientas que llevaron a merca bici al éxito
8 herramientas que llevaron a merca bici al éxito
 
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...
Annual Results and Impact Evaluation Workshop for RBF - Day Eight - Impact Ev...
 
8th Gr. Holocaust Paper Rubric
8th Gr. Holocaust Paper Rubric8th Gr. Holocaust Paper Rubric
8th Gr. Holocaust Paper Rubric
 
8th PreAlg - March14
8th PreAlg - March148th PreAlg - March14
8th PreAlg - March14
 
8jdk
8jdk8jdk
8jdk
 
8mei aceh
8mei aceh8mei aceh
8mei aceh
 
8NE Lesson 7
8NE Lesson 78NE Lesson 7
8NE Lesson 7
 
8. SHIPBRIDGE
8. SHIPBRIDGE8. SHIPBRIDGE
8. SHIPBRIDGE
 
8th Alg - L6.2--Jan9
8th Alg - L6.2--Jan98th Alg - L6.2--Jan9
8th Alg - L6.2--Jan9
 
8NE Lesson 12 plan
8NE Lesson 12 plan8NE Lesson 12 plan
8NE Lesson 12 plan
 
8NE Lesson 12 PPT
8NE Lesson 12 PPT8NE Lesson 12 PPT
8NE Lesson 12 PPT
 
8th Annual Maritime Homeland Security Summit
8th Annual Maritime Homeland Security Summit8th Annual Maritime Homeland Security Summit
8th Annual Maritime Homeland Security Summit
 

Similar a 8 Listas Encadenadas

Similar a 8 Listas Encadenadas (20)

Listas c#
Listas c#Listas c#
Listas c#
 
Listas en C#
Listas en C#Listas en C#
Listas en C#
 
Informe de Lista.pdf
Informe de Lista.pdfInforme de Lista.pdf
Informe de Lista.pdf
 
Unidad _ III
Unidad _ IIIUnidad _ III
Unidad _ III
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.
 
Listas
ListasListas
Listas
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
DECLARACION DE LISTAS 1.pdf
DECLARACION DE LISTAS 1.pdfDECLARACION DE LISTAS 1.pdf
DECLARACION DE LISTAS 1.pdf
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
listas Luis Guarata 31332901.pdf
listas Luis Guarata 31332901.pdflistas Luis Guarata 31332901.pdf
listas Luis Guarata 31332901.pdf
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Estructura de dato unidad 3
Estructura de dato unidad 3Estructura de dato unidad 3
Estructura de dato unidad 3
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas Encadenadas Jose Tannous
Listas Encadenadas Jose TannousListas Encadenadas Jose Tannous
Listas Encadenadas Jose Tannous
 
Listas de Java
Listas de JavaListas de Java
Listas de Java
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

8 Listas Encadenadas

  • 1. Listas encadenadas Apoyo SSD5
  • 2. Una Estructura Encadenada Una lista encadenada almacena una secuencia lineal de elementos. Usando una lista encadenada y sus operaciones asociadas, podemos construir, manipular y mantener una lista de elementos Mtl Lourdes Cahuich 2
  • 3. Listas encadenadas Las listas encadenadas comparten muchas de las mismas operaciones de los vectores Ambas estructuras de datos soportan la inserción y eliminación de elementos, recorrido de elementos, y otras operaciones básicas Mtl Lourdes Cahuich 3
  • 4. Listas encadenadas La eficiencia de ciertas operaciones difiere entre las listas encadenadas y los vectores. Por ejemplo, la operación asociada con eliminar el primer elemento es más eficiente en una lista encadenada que en un vector Mtl Lourdes Cahuich 4
  • 5. Listas encadenadas Por otro lado, acceder a un elemento aleatorio en una secuencia almacenada en un vector es más eficiente que en una lista encadenada. Estas diferencias en eficiencia están basadas en la forma en que cada estructura de datos almacena elementos en la memoria. Mtl Lourdes Cahuich 5
  • 6. Almacenamiento en listas encadenadas Almacenamiento en el vector Almacenamiento en la lista Mtl Lourdes Cahuich 6
  • 7. Listas encadenadas La referencia es típicamente conocida como quot;cadenaquot;, lo cual explica el nombre de “Lista encadenada” o “linked list” Es importante observar que se requiere memoria extra para almacenar la cadena para cada elemento de la lista. Este requerimiento de memoria adicional es una diferencia fundamental entre las listas encadenadas y los vectores Mtl Lourdes Cahuich 7
  • 8. Listas encadenadas Cuando los elementos son almacenados un lugares contiguos de la memoria, el acceso aleatorio de elementos es eficiente porque la implantación puede computar directamente el lugar de cualquier elemento El almacenamiento contiguo en la memoria tiene un impacto adverso en otras operaciones Mtl Lourdes Cahuich 8
  • 9. Listas encadenadas El almacenamiento no-contiguo también tiene sus ventajas y desventajas. Una ventaja de una lista encadenada es que podemos eliminar o agregar un elemento simplemente reacomodando las ligas o cadenas Mtl Lourdes Cahuich 9
  • 10. Listas encadenadas Por otro lado, el acceso aleatorio de elementos en una lista encadenada no es tan eficiente como lo es en un vector. Para acceder a un elemento específico en una lista encadenada, debemos recorrer todos los elementos desde el inicio hasta que encontremos el elemento que buscamos. Mtl Lourdes Cahuich 10
  • 11. Listas encadenadas Esto se debe a que el uso de un almacenamiento no-contiguo evita calcular fácilmente donde está almacenado un elemento específico Mtl Lourdes Cahuich 11
  • 12. Cómo Encadenar Elementos Como vimos anteriormente, almacenar en memoria sólo los datos del elemento no es suficiente para mantener la estructura de una lista encadenada Cada elemento debe también indicar donde se encuentra localizado el siguiente elemento Mtl Lourdes Cahuich 12
  • 13. Cómo Encadenar Elementos Como estamos trabajando con lugares de memoria, encadenar los elementos contenidos en una lista encadenada es una aplicación perfecta para los apuntadores Mtl Lourdes Cahuich 13
  • 15. Cómo Encadenar Elementos Observa que el apuntador asociado con el último elemento está establecido como un apuntador nulo. Esta es una técnica estándar usada para denotar el último elemento de una lista Mtl Lourdes Cahuich 15
  • 17. Cómo Encadenar Elementos Un nodo en una lista encadenada contiene los datos para un elemento y cualquier resguardo de información necesario para mantener la representación de la lista Mtl Lourdes Cahuich 17
  • 18. Cómo Encadenar Elementos La estructura representada en la figura anterior es conocida como una lista sencillamente-encadenada (singly-linked list) debido a que solamente existe una cadena para cada nodo. Mtl Lourdes Cahuich 18
  • 19. Cómo Encadenar Elementos Como sólo existe una cadena para cada nodo, podemos recorrer una lista sencillamente-encadenada solamente del frente hacia atrás. Mtl Lourdes Cahuich 19
  • 20. Listas doblemente encadenadas
  • 21. Listas doblemente encadenadas Para facilitar el recorrido de una lista en cualquier dirección, podemos agregar un apuntador adicional a cada nodo, que apunte al nodo anterior de la lista. Mtl Lourdes Cahuich 21
  • 22. Listas doblemente encadenadas Cada nodo tiene un nuevo apuntador que hace referencia al nodo anterior de la lista. Este tipo de lista encadenada es conocida como lista doblemente-encadenada. Una lista doblemente-encadenada nos permite movernos hacia adelante y hacia atrás en la lista. Mtl Lourdes Cahuich 22