UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2015 - Enero 2016

Programación con listas encadenadas

Actividades en el laboratorio

1. Creación de una lista encadenada

Recursos

  • Programa que se implementa un menú con varias opciones y las funciones struct node *create_node(struct ap_scan_info *cell) y void print_node(struct node *node_ptr) ya implementadas.

  • Carpeta con nombre List_aps en tu espacio compartido en Subversion.Copia local disponible aquí.

  • Para autocomprobar tu código, puedes usar: test_menu_operations_dynnamic_list_es.sh

Plan de trabajo

Partiendo del programa del menú con las funciones mencionadas, realiza las siguientes modificaciones:

  1. Implementa la función struct node *create_list(struct ap_scan_info *array, int size) que recibe una tabla de estructuras struct ap_scan_info y devuelve dicha tabla en una lista encadenada. Para ello usa la definición de tipo de datos y la función struct node *create_node(struct ap_scan_info *cell) de las actividades previas.

  2. Añade e implementa una nueva opción en el menú que permita al usuario crear una lista encadenada a partir del array. Almacena esta lista en una variable para que pueda ser utilizada en otras opciones.

  3. Añade e implementa una nueva opción en el menú que muestre al usuario todos los puntos de acceso de la lista enlazada. Usa la función void print_node(struct node *node_ptr)de las actividades previas.

  4. Añade código para que la lista, si existe, se destruya al terminar el programa.

Opcionalmente, sube el fichero al repositorio con svn commit.

¿Cuánto tiempo has dedicado a esta actividad? mins.

2. Actividades posteriores a la sesión (no obligatorias)

A continuación se incluyen un ejercicio adicional para practicar más operaciones con listas.

Borrar nodos de una lista encadenada

Recursos

  • Programa que se implementa un menú con varias opciones y las funciones struct node *create_list(struct ap_scan_info *array, int size) y el código para destruir la lista al terminar el programa.

  • Carpeta con nombre List_aps en tu espacio compartido en Subversion.Copia local disponible aquí

Plan de trabajo

Partiendo del programa del menú de opciones realiza las siguientes modificaciones:

  1. Implementa la función struct node *delete_essid_in_list(struct node *, char *essid) que recibe una lista enlazada y una cadena con el essid de una red y borra todos los puntos de acceso que tengan dicho essid. La función devuelve la lista modificada.

  2. Añade e implementa una nueva opción en el menú que permita al usuario borrar todos los nodos con el mismo essid de la lista. Usa la función getline para ello

Opcionalmente, sube el fichero al repositorio con svn commit.

¿Cuánto tiempo has dedicado a esta actividad? mins.