1.226 visualizaciones desde el 14 de Enero del 2017
185,4 KB
2 paginas
Creado hace 14a (17/03/2011)
Universidad de Cantabria. Ingeniería Informática
Prácticas de Programación II. Curso 2010-2011
Práctica 3. Lista enlazada en C
Práctica 3. Lista enlazada en C
Objetivos
Practicar la modularidad en C, el uso de punteros y la reserva dinámica de memoria.
Lista simplemente enlazada
Escribir en lenguaje C un módulo (fichero de cabecera .h y fichero .c con las funciones básicas
del módulo) que permita gestionar una lista simplemente enlazada de estructuras que almacenan
datos de una competición de turismos.
La estructura almacenará los siguientes campos:
• Nombre del piloto.
• Modelo del vehículo.
• Puntos obtenidos.
• Puntero al siguiente elemento de la lista.
El módulo deberá definir las siguientes operaciones sobre los elementos de la lista:
• Inicializar.: Inicializa la lista, teniendo en cuenta que la lista comienza sin ningún elemento.
• Añadir por la cabeza: Añade un nuevo elemento al principio de la lista.
• Añadir por la cola: Añade un nuevo elemento al final de la lista.
• Buscar ganador: Recorre la lista buscando el piloto con más puntos y devuelve un puntero al
elemento.
• Eliminar elemento de la cabeza: Elimina el primer elemento de la lista.
• Mostrar datos: Dado un puntero a un elemento, muestra los datos del piloto.
Además, se habrá de escribir un programa de prueba para el módulo. Desde dicho programa se
crearán varias listas y se probará el comportamiento de las operaciones desarrolladas en
diferentes situaciones (lista vacía, eliminar el primer o último elemento, etc.).
piloto
vehiculo
puntos
siguiente
piloto
vehiculo
puntos
siguiente
lista
piloto
vehiculo
puntos
siguiente
Universidad de Cantabria. Ingeniería Informática
Prácticas de Programación II. Curso 2010-2011
Práctica 3. Lista enlazada en C
Parte Complementaria
Como parte complementaria se pide implementar y probar las siguientes operaciones:
• Buscar piloto: Dado el nombre de un piloto, lo busca en la lista y en caso de existir devuelve
un puntero al elemento.
• Añadir ordenado por puntos: Dado un nuevo elemento, recorre la lista y lo añade según su
puntuación, considerando que la lista está ordenada de mayor a menor puntuación.
• Ordenar por puntos: Dada una lista, ordena sus elementos de forma descendente de mayor a
menor puntuación.
• Eliminar elemento: Dado un puntero a un elemento de la lista, lo elimina y modifica los
punteros necesarios para seguir manteniendo la lista con el resto de elementos.
• Tongo: Recorre la lista buscando al piloto con más puntos. Una vez lo encuentra modifica su
puntuación y le asigna justamente un punto menos que la puntuación del piloto que está en
segunda posición, de forma que ahora este piloto sería el ganador.
Entrega
La entrega se realizará mediante una tarea de moodle creada a tal efecto. Se han de entregar los
ficheros fuente desarrollados, comprimidos en un fichero zip cuyo nombre esté formado por el
número de práctica y nombre del alumno. Ejemplo: p3JuanLopez.zip.
El plazo de entrega finaliza a las 23:55 del Miércoles anterior a la siguiente sesión de prácticas.
Links de descarga
http://lwp-l.com/pdf1006
Comentarios de: Práctica 3. Lista enlazada en C (0)
Comentarios de: Práctica 3. Lista enlazada en C (0)
No hay comentarios