SlideShare una empresa de Scribd logo
Facultad de Estadística e Informática
ESTRUCTURAS DE DATOS
LIC. REDES Y SERVICIOS DE CÓMPUTO
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
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.
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.
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.
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.
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.
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.
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.
Facultad de Estadística e Informática
Listas ligadas o enlazadas. Ventajas.
Lista ligada circular
Lista doblemente ligada
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Básicas.
Insertar
Eliminar
EstaVacia
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.
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.
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.
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Básicas.
Insertar
Eliminar
EstaVacia
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
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
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o estaVacia()
primeroPtr
Regresa TRUE
Regresa FALSE
primeroPtr
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operación Insertar
o Constructor. Asigna Nulo a primeroPtr
primeroPtr=NULL
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
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
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
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
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
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.
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Recorre Iterativo
Inserta al Final
Recorre Recursivo
Inserta Antes
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
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
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
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()
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
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
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
o Llamado a Recorre Recursivo
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
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
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
Facultad de Estadística e Informática
Listas ligadas o enlazadas. o Insertar Antes
Inserta el
nodo
haciendo los
cambios
correspondi
entes el
apuntadores
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
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
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
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
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
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
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
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.
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Eliminar al Inicio
Eliminar Nodo
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
Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Eliminar nodo referencia
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
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
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
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.
Facultad de Estadística e Informática
Listas ligadas o enlazadas.
Operaciones Complementarias.
Insertar Después
Eliminar Último
Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Insertar Después
Facultad de Estadística e Informática
Listas ligadas o
enlazadas.
o Eliminar Último
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.
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:
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.
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.
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.
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.
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.
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.
Facultad de Estadística e Informática
Solución de Colisiones por
encadenamiento
Facultad de Estadística e Informática
Solución de Colisiones por encadenamiento
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}
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

Más contenido relacionado

Similar a Clase5-ListasEnlazadasFinal.pdf

3752215.ppt
3752215.ppt3752215.ppt
3752215.ppt
ssuser948499
 
Listas
ListasListas
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
listas enlazadas.pdf
listas enlazadas.pdflistas enlazadas.pdf
listas enlazadas.pdf
ssuser948499
 
Bases De Datos My Sql
Bases De Datos My SqlBases De Datos My Sql
Bases De Datos My SqlArnulfo Gomez
 
Presentacion Lista, Cola y Pila
Presentacion Lista, Cola y PilaPresentacion Lista, Cola y Pila
Presentacion Lista, Cola y Pilathemvp16
 
Data frame
Data frameData frame
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
estructura lineales
estructura linealesestructura lineales
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
jorgeluis0317
 
Examen de recuperacion Betriz Cruz Granados
Examen de recuperacion Betriz Cruz GranadosExamen de recuperacion Betriz Cruz Granados
Examen de recuperacion Betriz Cruz GranadosBety Cruz
 
Examen de recuperacion maestra yolanda
Examen de recuperacion maestra yolandaExamen de recuperacion maestra yolanda
Examen de recuperacion maestra yolandaBety Cruz
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
K Manuel TN
 
Listas
ListasListas
Listas
menamigue
 
El Modelo Relacional de Datos
El Modelo Relacional de DatosEl Modelo Relacional de Datos
El Modelo Relacional de Datos
Manuel Guerra
 
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
Kevin Neisa Gonzalez
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasElvis Perez
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuencia
cbertolotti
 

Similar a Clase5-ListasEnlazadasFinal.pdf (20)

3752215.ppt
3752215.ppt3752215.ppt
3752215.ppt
 
Listas
ListasListas
Listas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
listas enlazadas.pdf
listas enlazadas.pdflistas enlazadas.pdf
listas enlazadas.pdf
 
Bases De Datos My Sql
Bases De Datos My SqlBases De Datos My Sql
Bases De Datos My Sql
 
Presentacion Lista, Cola y Pila
Presentacion Lista, Cola y PilaPresentacion Lista, Cola y Pila
Presentacion Lista, Cola y Pila
 
Data frame
Data frameData frame
Data frame
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
estructura lineales
estructura linealesestructura lineales
estructura lineales
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Examen de recuperacion Betriz Cruz Granados
Examen de recuperacion Betriz Cruz GranadosExamen de recuperacion Betriz Cruz Granados
Examen de recuperacion Betriz Cruz Granados
 
Examen de recuperacion maestra yolanda
Examen de recuperacion maestra yolandaExamen de recuperacion maestra yolanda
Examen de recuperacion maestra yolanda
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Listas
ListasListas
Listas
 
El Modelo Relacional de Datos
El Modelo Relacional de DatosEl Modelo Relacional de Datos
El Modelo Relacional de Datos
 
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
Bcdyhfjytcyrygdjhnryxcvbxvef 150716154538-lva1-app6891-150723154945-lva1-app6891
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuencia
 

Más de PikachuAyala

La organización social en la humanidad c
La organización social en la humanidad cLa organización social en la humanidad c
La organización social en la humanidad c
PikachuAyala
 
ARQUICTURA Y DISEÑO.pptx
ARQUICTURA Y DISEÑO.pptxARQUICTURA Y DISEÑO.pptx
ARQUICTURA Y DISEÑO.pptx
PikachuAyala
 
Presentación de ubuntu, actualizado.pptx
Presentación de ubuntu, actualizado.pptxPresentación de ubuntu, actualizado.pptx
Presentación de ubuntu, actualizado.pptx
PikachuAyala
 
TRABAJO DE AEP.pptx
TRABAJO DE AEP.pptxTRABAJO DE AEP.pptx
TRABAJO DE AEP.pptx
PikachuAyala
 
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdfadministrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
PikachuAyala
 
tcon477.pdf
tcon477.pdftcon477.pdf
tcon477.pdf
PikachuAyala
 

Más de PikachuAyala (6)

La organización social en la humanidad c
La organización social en la humanidad cLa organización social en la humanidad c
La organización social en la humanidad c
 
ARQUICTURA Y DISEÑO.pptx
ARQUICTURA Y DISEÑO.pptxARQUICTURA Y DISEÑO.pptx
ARQUICTURA Y DISEÑO.pptx
 
Presentación de ubuntu, actualizado.pptx
Presentación de ubuntu, actualizado.pptxPresentación de ubuntu, actualizado.pptx
Presentación de ubuntu, actualizado.pptx
 
TRABAJO DE AEP.pptx
TRABAJO DE AEP.pptxTRABAJO DE AEP.pptx
TRABAJO DE AEP.pptx
 
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdfadministrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
administrarcuentasdeusuarioyequipo-150921041459-lva1-app6891.pdf
 
tcon477.pdf
tcon477.pdftcon477.pdf
tcon477.pdf
 

Último

Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
NicolasGramajo1
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
YoverOlivares
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
JuanChaparro49
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
JuanAlbertoLugoMadri
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
manuelalejandro238
 
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
LUISDAMIANSAMARRONCA
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
AlfonsoRosalesFonsec
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
Daniel Jose Sierra Garcia
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdfINFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
GROVER MORENO
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
ivan848686
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
ssuserebb7f71
 
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
IVANBRIANCHOQUEHUANC
 
kupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdfkupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdf
nachososa8
 
choro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiologíachoro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiología
elvis2000x
 

Último (20)

Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdfLas Fuentes de Alimentacion Conmutadas (Switching).pdf
Las Fuentes de Alimentacion Conmutadas (Switching).pdf
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
 
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdfAletas de Transferencia de Calor o Superficies Extendidas.pdf
Aletas de Transferencia de Calor o Superficies Extendidas.pdf
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
 
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
Expo sobre los tipos de transistores, su polaridad, y sus respectivas configu...
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Mapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIASMapa de carreteras de Colombia 2022 INVIAS
Mapa de carreteras de Colombia 2022 INVIAS
 
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdfPLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
PLAN DE EMERGENCIAS Y EVACUACION 2024.pdf
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdfINFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
INFORME DE DE CONTROL N° 009-2024-OCI5344-SCC LEBERTADOR SAN MARTIN OYON.pdf
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
ABR-FUNDAMENTOS DEL CALCULO uc 2024 ........
 
kupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdfkupdf.net_copia-de-manual-agroislentildea.pdf
kupdf.net_copia-de-manual-agroislentildea.pdf
 
choro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiologíachoro ciclo de vida anatomía y fisiología
choro ciclo de vida anatomía y fisiología
 

Clase5-ListasEnlazadasFinal.pdf

  • 1. Facultad de Estadística e Informática ESTRUCTURAS DE DATOS LIC. REDES Y SERVICIOS DE CÓMPUTO
  • 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.
  • 26. Facultad de Estadística e Informática
  • 27. Facultad de Estadística e Informática
  • 28. Facultad de Estadística e Informática
  • 29. Facultad de Estadística e Informática
  • 30. Facultad de Estadística e Informática
  • 31. Facultad de Estadística e Informática
  • 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
  • 60. Facultad de Estadística e Informática Listas ligadas o enlazadas. o Insertar Después
  • 61. Facultad de Estadística e Informática Listas ligadas o enlazadas. o 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.
  • 70. Facultad de Estadística e Informática Solución de Colisiones por encadenamiento
  • 71. Facultad de Estadística e Informática Solución de Colisiones por encadenamiento
  • 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