



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Contabilidad Financiera II, Profesor: Roberto Muñoz, Carrera: Ingeniería Informática + Administración y Dirección de Empresas, Universidad: URJC
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




_Estructuras de Datos Mayo 2017 APELLIDOS: NOMBRE: TITULACIÓN: __GII __GII+ADE __GII+CRI __GII+MAT __GIS __GIS+GII _GIS+MAT DNI: Duración: 1:45 h.
Se recuerda que, según la guía docente y para la convocatoria de mayo, el 15% de la nota final^ Calificación: se corresponde con pruebas prácticas realizadas, 25% con prueba escrita teórica y 60% con prueba escrita práctica. Se sugiere dejar 1 hora de esfuerzo en la resolución del ejercicio 5. Contestar en la hoja de enunciados los 4 primeros ejercicios.
( Prueba escrita teoría, 0.5 puntos ). Crear un árbol AVL dada la siguiente secuencia de números enteros: 5, 7, 9, 4, 6, 8, 14, 11, 12. Se deberán describir los pasos de cada inserción y cómo va quedando el árbol tras cada una de ellas.
( Prueba escrita teoría, 0.5 punto ) De las diferentes implementaciones de listas dinámicas estudiadas en clase, enumerar cuáles de ellas se ajustan a la relación operación->orden de complejidad para todas las operaciones que se presentan a continuación. Justifique su respuesta.
a) Dibuje en forma arborescente cómo quedaría el árbol representado en memoria estática.
b) A continuación inserte el elemento de valor ‘Antonio’ mostrando cómo quedaría el contenedor en su representación estática.
a) Se pide implementar una operación que devuelva el valor de la suma máxima de las ramas del árbol. En el árbol del ejemplo la suma máxima es 44.
‘Belen’ ‘David’ ‘Jesús’ ‘Juan’ ‘Soto’ ‘Alfonso’ ‘Almudena’ 7 2 0 0 1 5 0 6 0 0 2 0 0 0
cabLibres: 4 cabArbolBB: 3
Cada gimnasio estará caracterizado por un nombre, su dirección y el distrito en el que se ubica, y la lista de actividades que se pueden practicar en él ( Bodypump , Zumba , Burn , Yoga , Abs attack , etc). Los diferentes gimnasios del mismo distrito están conectados entre sí, y también con los de los diferentes distritos contiguos. Por ejemplo, observando el mapa de los 21 distritos de Madrid, los gimnasios del distrito 1 estarán conectados con todos los gimnasios de los distritos 3, 5, 7, 8, 14 y 20.
Toda la información de los gimnasios abiertos por el empresario se encuentra almacenada en una base de datos. Para leer de la base de datos se proporciona para su uso ( y no hay que implementar ) el siguiente subprograma:
PROCEDURE ReadGymFromDB(VAR nombre: String; VAR direccion: TDireccion; VAR distrito: String; VAR actividades: TActividades; VAR error: Boolean);
Donde TDireccion está definido en la unidad uDireccion como:
TDireccion = RECORD calle: String; numero: Integer; END
Y el tipo TActividades está definido en la unidad uActividades como:
TActividades = RECORD actividades: ARRAY[1..10] OF String; numeroActividades: Integer; END;
El subprograma ReadGymFromDB devuelve en nombre el nombre del gimnasio, en direccion la información de la calle y número donde se encuentra el gimnasio que está leyendo en ese momento, en distrito el nombre del barrio donde se encuentra el gimnasio, en actividades las diferentes actividades que oferta el gimnasio y, por último, la devolución de la variable booleana error indicará cuándo se ha llegado al final de la consulta y no hay que seguir consultando información de gimnasios, por tanto devolverá FALSE indicando que se ha leído correctamente la información de un gimnasio (y por tanto no hay error) o TRUE cuando se haya llegado al final de la información y la lectura no contiene información útil. Se invocará al procedimiento ReadGymFromDB las veces que sean necesarias para ir cargando secuencialmente la información de los gimnasios desde la base de datos hasta que la variable error indique que no hay más información nueva que leer.
Se pide lo siguiente:
a) [1.5 punto] Definir el tipo de datos TRedGimnasios para representar la información en memoria principal de la red de gimnasios. Además de utilizar los tipos que se proporcionan, se deberán crear todos los tipos que se consideren necesarios para estructurar de forma adecuada la información. Cada tipo deberá estar en una unidad diferente.
A continuación implementar un procedimiento (y su llamada en el programa principal) para cargar en memoria principal toda la información de la red de gimnasios almacenada en la base de datos. Si para ello se necesitan operaciones de los diferentes tipos de datos proporcionados, así como de los nuevos creados, deberán implementarse también en sus unidades correspondientes.
Hay que tener en cuenta que para construir de forma adecuada la red, no sólo hay que utilizar el subprograma de consulta a la base de datos ReadGymFromBD para leer los datos de los diferente gimnasios, sino que también es necesario saber, una vez conocidos cuáles son todos los gimnasios de la red, qué distritos son contiguos y qué gimnasios tiene cada uno (para poder conectar unos gimnasios con otros). Esta información se puede obtener mediante el siguiente subprograma (se supone ya implementado):
PROCEDURE ReadContiguousDistrictsFromDB(nombre_gym: String; VAR distritosContiguos: TDistritosContiguos);