Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Prctica 2
Memora dinmica.
TADs lineales dinmicos
Versin 2.
Estructuras de Datos I
Introduccin
Con esta prctica se pretende afianzar los conceptos relativos al uso de memoria dinmica y
de los TADs lineales, apoyados en memoria dinmica.
Esta prctica se basa en que, para el desarrollo de las futuras olimpiadas, nos han solicitado que
desarrollemos una aplicacin que conste de:
EEUU
Prueba: Baloncesto M Prueba: Voleibol M Prueba: 100m lisos M.
Participante: Equipo Participante: Equipo Participante: J. Gatlin
Medalla: Oro Medalla: Oro Medalla: Plata
ESPAA
Prueba: Badminton Prueba: Baloncesto F Prueba: Baloncesto M
Participante: Carolina Marin Participante: Equipo Participante: Equipo
Medalla: Oro Medalla: Plata Medalla: Bronce
SERBIA
Prueba: Baloncesto M Prueba: Baloncesto F
Participante: Equipo Participante: Equipo
Medalla: Plata Medalla: Bronce
struct Tmedallista{
cadena prueba;
cadena participante;
int medalla; /*1 oro, 2 plata, 3 bronce*/
};
class lista {
class colaprioridad
{
lista elementos;
public:
colaprioridad();
~colaprioridad();
void encolar(Tmedallista e);
void desencolar();
Tmedallista primero();
int longitud();
bool esvacia();
}
struct Tpais {
cadena nombre;
colaprioridad medallas;
}; //estructura para almacenar la informacin completa de un
//pas (tanto su nombre como su cola de prioridad de medallas
class listapaises
{
/*lista simplemente enlazada de elementos de tipo Tpais,
basada en una implementacin con estructuras enlazadas */
};
class olimpiadas {
listapaises P;
public:
olimpiadas();
~olimpiadas();
void insertarMedalla(cadena pais,Tmedallista m);
void listarmedallero();
void volcarAfichero(cadena nom);
void leerDefichero(cadena nom);
};
La clase lista es anloga a la vista en clase y recogida en los apuntes, pero donde debe
hacer las adaptaciones oportunas en base al tipo base de la lista. Adems, para ver si un
medallista est en la lista o no, se entender que debemos buscar por el nombre de la prueba y
del participante conjuntamente.
Se le pide desarrollar los mtodos de las clase olimpiadas y usarlos en un main que debe realizar para
poner en prctica los mtodos desarrollados. El detalle de los mtodos, que requieren explicacin, la
mostramos a continuacin:
insertarMedalla
Este mtodo recibe el nombre de un pas y la estructura Tmedallista (campos prueba,
participante y medalla). Lo que hace el mtodo es insertar la medalla en la estructura de la
olimpiada. Si el pas existe aade la medalla, si no existiera, lo crea.
volcarAfichero
Este mtodo se encarga de volcar el contenido de la olimpiada al fichero de nombre fsico que
se nos pase como parmetro. El fichero que se crea tiene la siguiente estructura:
Listarmedallero
Muestra por pantalla el medallero completo de las olimpiadas en la forma
Pais: XXXX1
Prueba PPPPP1 Participante TTTTTTT1 Medalla MMM (siendo MMM oro, plata o
bronce)
Prueba PPPPP2 Participante TTTTTTT2 Medalla MMM (siendo MMM oro, plata o
bronce)
.
Pas: XXXX2
Prueba PPPPPH Participante TTTTTTTI Medalla MMM (siendo MMM oro, plata o
bronce)
Prueba PPPPPJ Participante TTTTTTTU Medalla MMM (siendo MMM oro, plata o
bronce)
.
leerDefichero
Mtodo que recibiendo el nombre de un fichero procede a cargar el contenido de las olimpiadas con
los datos contenidos en dicho fichero. ste fichero responde al patrn o tipo de fichero que se crea en
el volcarAfichero.
Para ayudarles en el desarrollo de la prctica, se les facilita un fichero de datos (olim.dat), que tiene
internamente la estructura antes mencionada, por si desea usarlo para las pruebas. Su contenido es:
PAIS:Espaa
PRUEBA: Baloncesto PARTIPANTE: Equipo MEDALLA: Bronce
PRUEBA: Badminton PARTIPANTE: Carolina Marin MEDALLA: Oro
PAIS:EEUU
PRUEBA: Baloncesto PARTIPANTE: Equipo MEDALLA: Oro
PAIS:Serbia
PRUEBA: Baloncesto PARTIPANTE: Equipo MEDALLA: Plata