Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Laboratorio de programación
Luisa Fernanda Rincón Pérez 2015-2
2
Sesión 16.TAD lista
3
¿Qué vimos la clase pasada?
Memoria dinámica con arreglos Memoria dinámica con matrices
4
Anuncios La próxima semana no tenemos clase.
La entrega de la segunda parte del taller es el domingo 20 de septiembre 11:55 pm La entrega del tercer taller es el miércoles 30 de septiembre 11: 55 pm
5
Listas enlazadas sencillas
¿Qué haremos hoy? Listas enlazadas sencillas Insertar nodo cabeza Insertar nodo cola Imprimir nodo Eliminar nodo
6
Listas enlazadas
7
Contexto ¿Cómo guardar información cuándo no se sabe con anticipación cuántos elementos se requieren? Listas enlazadas
8
¿Qué saben ustedes de las listas enlazadas?
9
¿Cuáles son las características de las listas enlazadas sencillas?
Enlazan contenido dinámicamente Se implementan con apuntadores Tienen un apuntador “importante” que es el apuntador al inicio de la lista Se debe recorrer la lista linealmente únicamente de izquierda a derecha ( inicio de la lista hasta el final)
10
¿Cuáles son las características de las listas enlazadas sencillas?
No es posible regresar al elemento anterior Cada nodo se puede construir cuando se necesite y se puede insertar en el lugar que se desee Se almacenan en cualquier parte de la memoria, por lo que no se requieren segmentos de memoria contiguos
11
¿De qué esta compuesta una lista sencilla?
Nodos enlazados entre sí Último nodo apunta a NULL Fuente: Informática Básica con Énfasis en C. Eduardo Villegas.2000
12
¿Cómo se representa una lista en C?
Estructuras Creadas dinámicamente Definición recursiva Siguiente elemento es otra estructura del mismo tipo Apuntadores
13
¿Cómo se inserta un nodo al inicio de la lista?
Fuente: Informática Básica con Énfasis en C. Eduardo Villegas.2000
14
¿Cuál es el proceso para insertar al inicio? -- Codificación
15
¿Cómo se recorre una lista?
16
¿Cómo se recorre una lista?
Del inicio al fin: apuntador en la cabeza, luego apuntador auxiliar que inicia en la cabeza y se mueve hasta llegar al final de la lista, es decir apuntador auxiliar apunta a NULL
17
¿Cómo se recorre una lista?
Implementar la operación de contar nodos
18
¿Cómo se insertar un nodo al final de una lista?
Revisar que la lista no este vacía. Si está vacía insertar el nuevo nodo Avanzar hasta antes del final para insertar allí el nuevo nodo
19
¿Cómo se insertar un nodo al final de una lista?. Opción 1
20
¿Cómo se insertar un nodo al final de una lista?. Opción 2
pNuevoNodo pNuevoNodo pNodoAux pNuevoNodo pNodoAux 2 Fuente: Informática Básica con Énfasis en C. Eduardo Villegas.2000
21
¿Cómo se vería en código-extracto?
1 2
22
Eliminar un nodo de la lista ( eliminar cabeza)
Eliminar la cabeza Eliminar un nodo de la lista ( eliminar cabeza)
23
Eliminar un nodo de la lista ( diferente cabeza)
No se encontró el valor a eliminar: Aux en la posición siguiente es NULL
24
Eliminar un nodo de la lista ( diferente cabeza)
Si se encontró el valor a eliminar: Temporal que guarde el auxiliar en la posición siguiente, así temporal tendría la dirección del valor a eliminar. Se modifica el apuntador del siguiente del auxiliar para que sea igual al siguiente del nodo temporal. Reencadenar la lista.
25
Eliminar un nodo de la lista ( diferente cabeza)
Se libera la memoria del nodo a liberar
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.