El documento describe las listas ligadas o enlazadas, incluyendo su estructura, tipos, ventajas y operaciones básicas. Una lista ligada es una colección lineal de nodos donde cada nodo contiene un campo de información y un puntero al siguiente nodo. Se describen las clases Nodo y Lista, y operaciones como insertar, eliminar, recorrer de forma iterativa y recursiva.
Estructura de Datos - Unidad III Estructuras Lineales
Material de Clase de la Asignatura Estructura de Datos
Ingeniería en Sistemas Computacionales
Estructuras de datos en C++
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos, AED-1026
Material desarrollado utilizando Programación orientada a objetos, clases y nodos.
Estructura de Datos - Unidad III Estructuras Lineales
Material de Clase de la Asignatura Estructura de Datos
Ingeniería en Sistemas Computacionales
Estructuras de datos en C++
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos, AED-1026
Material desarrollado utilizando Programación orientada a objetos, clases y nodos.
Criterios de la primera y segunda derivadaYoverOlivares
Criterios de la primera derivada.
Criterios de la segunda derivada.
Función creciente y decreciente.
Puntos máximos y mínimos.
Puntos de inflexión.
3 Ejemplos para graficar funciones utilizando los criterios de la primera y segunda derivada.
Aletas de Transferencia de Calor o Superficies Extendidas.pdfJuanAlbertoLugoMadri
Se hablara de las aletas de transferencia de calor y superficies extendidas ya que son muy importantes debido a que son estructuras diseñadas para aumentar el calor entre un fluido, un sólido y en qué sitio son utilizados estos materiales en la vida cotidiana
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...LUISDAMIANSAMARRONCA
a polarización fija es una técnica de polarización simple y económica, adecuada para aplicaciones donde la estabilidad del punto de operación no es crítica. Sin embargo, debido a su alta sensibilidad a las variaciones de
𝛽
β y temperatura, su uso en aplicaciones prácticas suele ser limitado. Para mayor estabilidad, se prefieren configuraciones como la polarización con divisor de tensión o la polarización por retroalimentación.
1º Caso Practico Lubricacion Rodamiento Motor 10CVCarlosAroeira1
Caso pratico análise analise de vibrações em rolamento de HVAC para resolver problema de lubrificação apresentado durante a 1ª reuniao do Vibration Institute em Lisboa em 24 de maio de 2024
2. Facultad de Estadística e Informática
Clase 2
▪Unidad IV
Listas ligadas o enlazadas.
Fundamentos teóricos
Clasificación de listas ligadas
Implantación de listas ligadas
Operaciones básicas de listas ligadas
Operaciones complementarias de listas
Aplicaciones de listas ligadas
3. Facultad de Estadística e Informática
Una lista enlazada es una colección lineal de
elementos llamados nodos. El orden entre ellos se
establece mediante punteros; direcciones o
referencias a otros nodos.
4. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Un nodo está constituido por dos partes:
▪ Un campo INFORMACIÓN: Que será del
tipo de los datos que se quiera almacenar
en la lista.
▪ Un campo LIGA de tipo puntero, que se
utiliza para establecer la liga o el enlace
con otro nodo de la lista.
5. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Un programa accede a una lista enlazada mediante un apuntador al primer
nodo en la lista.
o Y se accede a cada nodo subsiguiente a través del miembro apuntador de
enlace almacenado en el nodo anterior.
o El apuntador de enlace en el último nodo de una lista se establece en el valor
nulo (0) para marcar el final de la lista.
6. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Los datos se almacenan en forma dinámica en una lista enlazada; se
crea cada nodo según sea necesario.
Un nodo puede contener datos de cualquier tipo, incluyendo objetos
de otras clases.
Son estructuras de datos lineales.
7. Facultad de Estadística e Informática
Listas ligadas o enlazadas. Ventajas.
Una lista enlazada es apropiada cuando el número de elementos de datos que se
van a representar en un momento dado es impredecible.
Las listas enlazadas son dinámicas, por lo que la longitud de una lista puede
incrementarse o reducirse, según sea necesario.
Las listas enlazadas se llenan sólo cuando el sistema no tiene suficiente memoria
para satisfacer las peticiones de asignación dinámica de almacenamiento.
8. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Para mantener las listas enlazadas en orden, se inserta cada nuevo
elemento en el punto apropiado en la lista. Los elementos existentes de
una lista no necesitan moverse.
Los nodos de las listas enlazadas no se almacenan contiguamente en
memoria. Sin embargo, en sentido lógico los nodos de una lista enlazada
parecen estar contiguos.
9. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Tipos de listas ligadas
Listas simplemente ligadas
Listas doblemente ligadas. Colección de nodos en los que cada uno tiene dos
apuntadores, uno a su predecesor y otro a su sucesor.
Listas circulares. El último nodo de la lista apunta al primero.
10. Facultad de Estadística e Informática
Listas ligadas o enlazadas. Ventajas.
Lista ligada circular
Lista doblemente ligada
11. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Básicas.
Insertar
Eliminar
EstaVacia
12. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
ASIGNACIÓN DINÁMICA DE MEMORIA Y ESTRUCTURAS DE DATOS EN
C++
o Para crear y mantener estructuras dinámicas de datos se requiere la asignación
dinámica de memoria.
o Permite que un programa obtenga más memoria en tiempo de ejecución, para
almacenar nuevos nodos.
o Cuando el programa ya no necesita la memoria, ésta se puede liberar.
13. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
ASIGNACIÓN DINÁMICA DE MEMORIA Y ESTRUCTURAS DE DATOS EN
C++
o El operador new recibe como argumento el tipo del objeto que se va a asignar
en forma dinámica y devuelve un apuntador a un objeto de ese tipo. Por
ejemplo:
Nodo *nuevoPtr = new Nodo( 10 ); // crea un Nodo con el valor 10
o Asigna sizeof( Nodo ) bytes, ejecuta el constructor de Nodo y asigna la dirección
del nuevo Nodo a nuevoPtr.
o El valor 10 se pasa al constructor de Nodo, el cual inicializa el miembro de datos
del Nodo con 10.
o Si no hay memoria disponible: bad_alloc.
14. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
ASIGNACIÓN DINÁMICA DE MEMORIA Y ESTRUCTURAS DE DATOS EN
C++
o El operador delete ejecuta el destructor de Nodo y desasigna la memoria
asignada con new; esta memoria se devuelve al sistema.
delete nuevoPtr;
o nuevoPtr en sí no se elimina; solo se elimina el espacio al que apunta nuevoPtr.
o Si el apuntador nuevoPtr tiene el valor 0 (apuntador nulo), la instrucción no
tiene efecto.
15. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Básicas.
Insertar
Eliminar
EstaVacia
16. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Antes de analizar la operación Insertar, se creará la clase Nodo y la clase Lista.
Clase Nodo:
// definicion del nodo de la lista
class Nodo
{
public:
int datos; // INFO, variable para almacenar el
valor del nodo
Nodo *siguientePtr; // LIGA, apuntador al nodo
siguiente de la lista
};
datos siguientePtr
17. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Antes de analizar la operación Insertar, se creará la clase Nodo y la clase Lista.
Clase Lista:
primeroPtr
18. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o estaVacia()
primeroPtr
Regresa TRUE
Regresa FALSE
primeroPtr
19. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Constructor. Asigna Nulo a primeroPtr
primeroPtr=NULL
20. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Destructor. Para liberar la memoria una vez que finaliza
el programa.
primeroPtr
actualPtr
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
8 3 5
NULL
Imprime 8
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
X
8 3 5
NULL
primeroPtr
datos siguientePtr
21. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Destructor. Para liberar la memoria una vez que finaliza
el programa.
Imprime 3
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
X
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
X X
datos siguientePtr
22. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Destructor. Para liberar la memoria una vez que finaliza
el programa.
Imprime 5
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
X
primeroPtr
actualPtr
tempPtr
8 3 5
NULL
X X
X
X
datos siguientePtr
23. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Insertar al inicio
valor
datos siguientePtr
nuevoPtr primeroPtr
NULL
valor
datos siguientePtr
NULL
nuevoPtr
primeroPtr
24. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Insertar al inicio
3 5
NULL
primeroPtr
datos siguientePtr
valor 3 5
NULL
primeroPtr
datos siguientePtr
valor
datos siguientePtr
nuevoPtr
valor
datos siguientePtr
nuevoPtr
25. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Actividad:
o Copia en C++ el siguiente código correspondiente a cada una de las clases y
métodos estudiados anteriormente para manipular las Listas Enlazadas.
32. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Recorre Iterativo
Inserta al Final
Recorre Recursivo
Inserta Antes
33. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Recorre Iterativo
primeroPtr
actualPtr
primeroPtr
actualPtr
8 3 5
NULL
8 3 5
NULL
Imprime 8
primeroPtr
actualPtr
8 3 5
NULL
8 3 5
NULL
primeroPtr
datos siguientePtr
34. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Imprime 3
primeroPtr
actualPtr
8 3 5
NULL
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
o Recorre Iterativo
35. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Imprime 5
primeroPtr
actualPtr
8 3 5
NULL
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
o Recorre Iterativo
36. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
primeroPtr
NULL
7
datos siguientePtr
NULL
nuevoPtr
primeroPtr
o Inserta al Final 7
datos siguientePtr
nuevoPtr
NULL
Si estaVacia()
37. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Inserta al Final
NULL
8 3 5
primeroPtr
datos siguientePtr
7
datos siguientePtr
nuevoPtr
NULL
38. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Inserta al Final
primeroPtr
actualPtr
primeroPtr
actualPtr
8 3 5
NULL
8 3 5
NULL
primeroPtr
actualPtr
8 3 5
NULL
7
datos siguientePtr
nuevoPtr
NULL
datos siguientePtr
7
nuevoPtr NULL
primeroPtr
actualPtr
8 3 5
siguientePtr
siguientePtr
39. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Llamado a Recorre Recursivo
40. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Recorre Recursivo actualPtr
8 3 5
NULL
Imprime 8
actualPtr
8 3 5
NULL
8 3 5
NULL
primeroPtr
datos siguientePtr
recorreRecursivo 8
Imprime 3
recorreRecursivo 3
actualPtr
8 3 5
NULL
41. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Recorre Recursivo
Imprime 3
recorreRecursivo 3
actualPtr
8 3 5
NULL
Imprime 5
recorreRecursivo 5
actualPtr
8 3 5
NULL
42. Facultad de Estadística e Informática
Listas ligadas o enlazadas. o Insertar Antes
Si la
lista
está
vacía
Crea nuevo
nodo con el
valor a
insertar
Variables
temporales
Busca el
valor de
referencia
43. Facultad de Estadística e Informática
Listas ligadas o enlazadas. o Insertar Antes
Inserta el
nodo
haciendo los
cambios
correspondi
entes el
apuntadores
44. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Crea
nuevo
nodo
Varia
bles
temp
9
datos siguientePtr
nuevoPtr
NULL
primeroPtr
actualPtr
8 3 5
NULL
previoPtr
referencia = 5, valor = 9
45. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
9
datos siguientePtr
primeroPtr
8 3 5
NULL
referencia = 5, valor = 9
Nodo 1 Nodo 2 Nodo 4
Nodo 3
46. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Buscar valor de referencia
referencia = 5, valor = 9
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
47. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Buscar valor de referencia
referencia = 5, valor = 9
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
48. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Buscar valor de referencia
referencia = 5, valor = 9
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
49. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Inserta el nuevo nodo nuevoPtr con datos=9
referencia = 5, valor = 9
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
9
datos siguientePtr
nuevoPtr
NULL
9
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
nuevoPtr
50. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Insertar Antes
Inserta el nuevo nodo nuevoPtr con datos=9
referencia = 5, valor = 9
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
9
datos siguientePtr
nuevoPtr
NULL
9
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
51. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Actividad:
De acuerdo a las operaciones estudiadas con listas simplemente enlazadas, elabora el
método:
void Lista::insertarDespues(int referencia, int valor)
Es decir, el método para insertar un nodo nuevo con un valor dado, después del nodo que
contenga un valor de referencia determinado.
Agrega la operación al menú principal del programa.
52. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Eliminar al Inicio
Eliminar Nodo
53. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Eliminar al inicio
primeroPtr
tempPtr
8 3 5
NULL
8 3 5
NULL
primeroPtr
datos siguientePtr
Escribe en pantalla: Destruyendo el nodo: 8
primeroPtr
tempPtr
8 3 5
NULL
primeroPtr
tempPtr
8 3 5
NULL
primeroPtr
tempPtr
8 3 5
NULL
X
primeroPtr
3 5
NULL
54. Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Eliminar nodo referencia
55. Facultad de Estadística e Informática
o Eliminar nodo
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
referencia=3
8 3 5
NULL
primeroPtr
datos siguientePtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
56. Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Eliminar nodo referencia previoPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
referencia=3
tempPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
tempPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
57. Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Eliminar nodo referencia
referencia=3
tempPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
Escribe en pantalla: Destruyendo el nodo: 3
tempPtr
primeroPtr
actualPtr
8 3 5
NULL
datos siguientePtr
previoPtr
X
primeroPtr
8 5
NULL
datos siguientePtr
previoPtr
58. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Actividad:
De acuerdo a las operaciones estudiadas con listas simplemente enlazadas, elabora el
método:
void Lista::eliminarUltimo
Es decir, el método para eliminar el último nodo de la lista.
Agrega la operación al menú principal del programa.
59. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Insertar Después
Eliminar Último
62. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones de las listas
Dos aplicaciones relevantes de las listas son:
oRepresentación de polinomios.
oResolución de Colisiones (hash).
En general, las listas son muy útiles para las aplicaciones en las que se requiere
dinamismo en el crecimiento y una estructura de datos reducida para el
almacenamiento de información.
63. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oRepresentación de polinomios.
oLas listas se pueden emplear para almacenar los coeficientes diferentes de cero
del polinomio, junto al exponente. Así, por ejemplo, dado el polinomio:
oSu representación mediante listas es la siguiente:
64. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oRepresentación de polinomios.
oEl campo INFORMACIÓN de cada nodo
de la lista contendrá dos campos: el
Coeficiente y el Exponente.
65. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oSolución de Colisiones (Hash)
oLa búsqueda es una de las operaciones más importantes en el procesamiento
de información. Se utiliza básicamente para recuperar datos que se habían
almacenado previamente.
oLa búsqueda interna se realiza cuando todos los datos se encuentran en
memora principal. Arreglos, listas, etc.
oLa búsqueda externa si los elementos se encuentran en memoria secundaria.
66. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oSolución de Colisiones (Hash)
oLos métodos de búsqueda interna más importantes son:
oSecuencial o lineal.
oBinaria.
oPor transformación de claves o hash.
oÁrboles de búsqueda.
67. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oSolución de Colisiones (Hash)
oPor transformación de claves o hash.
oPermite aumentar la velocidad de búsqueda sin necesidad de tener los elementos
ordenados.
oEl tiempo de búsqueda es independiente del número de elementos del arreglo.
oPermite localizar un dato de forma directa, es decir, sin tener que recorrer algunos
elementos antes de encontrarlo.
oUtiliza una función que convierte una clave dada en una dirección, índice, dentro del
arreglo.
68. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oSolución de Colisiones (Hash)
oPor transformación de claves o hash.
oLa función Hash aplicada a la clave genera un índice del arreglo que permite tener
acceso de manera directa al elemento.
oEsta función Hash debe ser simple de calcular y asignar direcciones de manera
uniforme, es decir, asignar posiciones distintas a dos claves distintas.
oSi ocurre la asignación de una misma dirección a dos o mas claves distintas, se genera
una colisión.
69. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Aplicaciones
oSolución de Colisiones
(Hash)
oSolución de colisiones por
método de Encadenamiento
oConsiste en que cada elemento del
arreglo tenga un apuntador a una
lista ligada, la cual se irá generando y
almacenará los valores que
colisionan.
72. Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Actividad:
Implementar las operaciones de unión, intersección y diferencia de conjuntos haciendo uso de
listas simplemente ligadas.
Unión: {1,2,3} ∪ {2,4,6} = {1,2,3,4,6} Intersección: {1,2,3} ∩ {2,4,6} = {2} Diferencia: {1,2,3} - {2,4,6} = {1,3}
73. Facultad de Estadística e Informática
Cairó, O. y Guardati, S. (2002). Estructuras de Datos, 2da. Edición. McGraw-Hill.
Deitel P.J. y Deitel H.M. (2008) Cómo programar en C++. 6ª edición.Prentice Hall.
Joyanes, L. (2006). Programación en C++: Algoritmos, Estructuras de datos y objetos.
McGraw-Hill.
Bibliografía