La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Laboratorio de programación

Presentaciones similares


Presentación del tema: "Laboratorio de programación"— Transcripción de la presentación:

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


Descargar ppt "Laboratorio de programación"

Presentaciones similares


Anuncios Google