Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Examen de Estructuras de Datos y de la Información - Problemas Resueltos - Prof. Giralt, Exámenes de Informática

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

Antes del 2010

Subido el 16/01/2009

kalocr
kalocr 🇪🇸

3.9

(16)

21 documentos

1 / 5

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
EXAMEN DE ESTRUCTURAS DE DATOS Y DE LA INFORMACIÓN
(Plan 98)
CONVOCATORIA ORDINARIA - 20/6/00
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:
Diseñar las ED correspondientes para dicha tabla, usando como clave las coordenadas
(x,y) de los puntos. Se reservará un espacio máximo de 200 medidas.
Implementar (en Java) los algoritmos siguientes:
a) Anota una nueva medida en la tabla, de forma que si el punto ya existía se
sustituya la medida anterior con la actual.
b) Muestra la altura de un cierto punto.
c) Elimina un punto
d) Muestra las alturas de todos los puntos y sus coordenadas.
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:
1. Diseñar las estructuras de datos necesarias para resolver este problema (3 puntos)
2. Diseñar DOS de los algoritmos (en Java o en pseudocódigo) que resuelven cada uno
de los problemas a)-e) (2 puntos)
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
1
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Examen de Estructuras de Datos y de la Información - Problemas Resueltos - Prof. Giralt y más Exámenes en PDF de Informática solo en Docsity!

EXAMEN DE ESTRUCTURAS DE DATOS Y DE LA INFORMACIÓN

(Plan 98)

CONVOCATORIA ORDINARIA - 20/6/

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:

  • Diseñar las ED correspondientes para dicha tabla, usando como clave las coordenadas (x,y) de los puntos. Se reservará un espacio máximo de 200 medidas.
  • Implementar (en Java) los algoritmos siguientes: a) Anota una nueva medida en la tabla, de forma que si el punto ya existía se sustituya la medida anterior con la actual. b) Muestra la altura de un cierto punto. c) Elimina un punto d) Muestra las alturas de todos los puntos y sus coordenadas.

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:

  1. Diseñar las estructuras de datos necesarias para resolver este problema (3 puntos)
  2. Diseñar DOS de los algoritmos (en Java o en pseudocódigo) que resuelven cada uno de los problemas a)-e) (2 puntos)

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

DURACIÓN MÁXIMA DEL EXAMEN: 4 HORAS

(Plan 98)

2º PARCIAL - CONVOCATORIA ORDINARIA - 20/6/

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:

  • Diseñar las ED correspondientes para dicha tabla, usando como clave las coordenadas (x,y) de los puntos. Se reservará un espacio máximo de 200 medidas.
  • Implementar (en Java) los algoritmos siguientes: e) Anota una nueva medida en la tabla, de forma que si el punto ya existía se sustituya la medida anterior con la actual. f) Muestra la altura de un cierto punto. g) Elimina un punto h) Muestra las alturas de todos los puntos y sus coordenadas.

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.

DURACIÓN MÁXIMA DEL EXAMEN: 4 HORAS