



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
Documento que contiene cuatro problemas relacionados con la manipulación de estructuras de datos en java, como tablas hash, grafos y árboles b. Cada problema incluye instrucciones claramente definidas y se proporcionan herramientas básicas para su resolución. Parte de un examen y se espera que los estudiantes diseñen y implementen algoritmos para solucionarlos.
Tipo: Exámenes
1 / 5
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




(Plan 98)
Problema 1. (2 puntos)
En un mapa, se mide la altura de ciertos puntos tomados al azar. Cada punto tiene dos coordenadas, latitud y longitud, cada una de ellas con tres valores naturales de dos cifras: grados, minutos y seg, por ejemplo x=20º,30’,45’’; y=54º,23’,33’’. Queremos almacenar dichas medidas en una tabla Hash. Para ello se pide:
Problema 2. (5 puntos)
Se desea realizar un programa de atención al usuario en la Feria del Libro. Como sabrás, la
feria la integran una serie de casetas, cada una de las cuales ofrece la posibilidad de comprar una cierta cantidad de libros. Por otra parte, a cada visitante se le entrega un catálogo con los nombres de los autores que firmarán libros y a qué horas. El programa debe ser capaz de ofrecer al visitante la siguiente información: a) Qué libros hay en una determinada caseta. b) En qué casetas se puede comprar un libro determinado. c) A qué horas firma ejemplares de su último libro publicado un autor y en qué caseta. d) Qué autores firman libros. e) Los 10 libros más vendidos al final de la feria. Se pide:
Problema 3. (2 puntos)
Diseñar un algoritmo ( en Java ) que decida si un grafo es conexo.
Nota: Suponed que tenéis implementada la clase grafo en un archivo que se llama GRAFO.CLASS con los siguientes métodos:
GRAFO: GRAFO AÑADIRVERTICE: VERTICE x GRAFO GRAFO
AÑADIRARCO: ARCO x GRAFO GRAFO PERTVERTICE: VERTICE x GRAFO boolean PERTARCO: ARCO x GRAFO boolean ESGRAFOVACÍO: GRAFO boolean BORRARVERTICE: VERTICE x GRAFO GRAFO BORRARARCO: ARCO x GRAFO GRAFO VERTICES: GRAFO LISTA, ARCOS: GRAFO LISTA, ADYACENTES: GRAFO x VERTICE LISTA
Además, suponed que disponéis de la implementación del TAD Vértice y del TAD Arco, en los archivos VERTICE.CLASS y ARCO.CLASS, con los siguientes métodos:
VERTICE: String VERTICE IDENTIFICADOR: VÉRTICE String EQUALS: VERTICE x VERTICE boolean
ARCO: VERTICE x VERTICE ARCO ORIGEN: ARCO VERTICE DESTINO: ARCO VERTICE
Por último, suponed ya implementado el TAD Lista en el archivo LISTA.CLASS con las siguientes operaciones:
LISTAVACIA LISTA ESVACIA: LISTA boolean AÑADIRPPIO: LISTA x OBJECT LISTA PRIMERO: LISTA OBJECT RESTO: LISTA LISTA BORRARPRIMERO: LISTA LISTA
Problema 4. (1 punto)
Hacer la especificación algebraica de la operación NOESSUBCOLA que decide si una cola no está contenida en otra.
Ejemplo: NOESSUBCOLA (ahj, brf) = vedadero NOESSUBCOLA (ahj, aahjbrf) = falso
(Plan 98)
Problema 1. (3 puntos)
En un mapa, se mide la altura de ciertos puntos tomados al azar. Cada punto tiene dos coordenadas, latitud y longitud, cada una de ellas con tres valores naturales de dos cifras: grados, minutos y seg, por ejemplo x=20º,30’,45’’; y=54º,23’,33’’. Queremos almacenar dichas medidas en una tabla Hash. Para ello se pide:
Problema 2. (4 puntos)
Diseñar un algoritmo (en Java o en pseudocódigo) que decida si un grafo es conexo.
Nota: Suponed que tenéis implementada la clase grafo en un archivo que se llama GRAFO.CLASS con los siguientes métodos:
GRAFO: GRAFO AÑADIRVERTICE: VERTICE x GRAFO GRAFO AÑADIRARCO: ARCO x GRAFO GRAFO PERTVERTICE: VERTICE x GRAFO boolean PERTARCO: ARCO x GRAFO boolean ESGRAFOVACÍO: GRAFO boolean BORRARVERTICE: VERTICE x GRAFO GRAFO BORRARARCO: ARCO x GRAFO GRAFO VERTICES: GRAFO LISTA, ARCOS: GRAFO LISTA, ADYACENTES: GRAFO x VERTICE LISTA
Además, suponed que disponéis de la implementación del TAD Vértice y del TAD Arco, en los archivos VERTICE.CLASS y ARCO.CLASS, con los siguientes métodos:
VERTICE: String VERTICE IDENTIFICADOR: VÉRTICE String EQUALS: VERTICE x VERTICE boolean
ARCO: VERTICE x VERTICE ARCO ORIGEN: ARCO VERTICE DESTINO: ARCO VERTICE
Por último, suponed ya implementado el TAD Lista en el archivo LISTA.CLASS con las siguientes operaciones:
LISTAVACIA LISTA ESVACIA: LISTA boolean AÑADIRPPIO: LISTA x OBJECT LISTA PRIMERO: LISTA OBJECT RESTO: LISTA LISTA BORRARPRIMERO: LISTA LISTA
Problema 3. (3 puntos)
i) Insertar gráficamente las siguientes claves, en el orden en que aparecen: 8-77-36-68-90-37-41-52-57-13-30-28-24- a) En un árbol B de orden 2 que está vacío b) En un árbol B +^ de orden 2 que está vacío
ii) Eliminar, en los árboles resultantes, las siguientes claves: 3-90-41-8-13-86-28-30-52-57-37-68-77-24.
Nota: En ambos casos hay que ir mostrando cómo va quedando el árbol al insertar o eliminar cada clave.