Está en la página 1de 2

ESTRUCTURAS DE DATOS

PROYECTO FINAL
ORDENAMIENTO Y BUSQUEDAS MEDIANTE ÁRBOLES Y LISTAS

Entrega: 25 de mayo, por equipos de trabajo.

Descripción:
Se pide que realicen una aplicación gráfica Java que permita cargar información de egresados de la
UADY y con estos datos generar una serie de listados o reportes con características avanzadas.

I. Interfaz y manejo de archivo


1. La aplicación deberá contar con una interfaz gráfica que facilite el manejo de las distintas
opciones del sistema: cargar datos, buscar, listar, listar avanzados, etc.
2. La estructura de datos interna queda a elección del equipo considerando las características de la
información y del tipo de uso que se le dará a esta. (listas, árboles, etc., no se permiten
estructuras de datos de los paquetes de Java).
a. Se proporciona el archivo Egresados.xls con la información de egresados (626
registros), determinar el formato para ser importado (archivo separado por comas CSV)
desde su aplicación. Los campos son: Nombre de alumno, Profesión y Promedio.
b. Generar la clase Egresado que será utilizada para manejar la información.
c. Cargar los datos desde archivo y generar árboles e índices según lo siguiente.
II. Construcción de Índices
3. Se debe contar con la opción de buscar y listar los datos de acuerdo con los campos disponibles, es decir
se tendrá la posibilidad de mostrar por nombre, por profesión, por promedio y combinaciones de estos:
nombre y profesión, nombre y promedio, profesión y nombre y profesión y promedio. Para esto, es posible
ordenar cada vez la lista de datos según el criterio, sin embargo, no sería muy eficiente pues implica un
gran movimiento de datos, sobre todo cuando los registros tienen asociada mucha información, por tal
motivo se debe buscar otra alternativa, por ejemplo.

a. Generación de índices: los cuales son tablas en la que se tiene la clave de búsqueda y el
número de registro, que indica la posición en la lista original (el número de registro sería igual
al número de línea en el archivo donde se encuentra la información completa), de esta forma no
es necesario mover los datos originales, se llega a ellos mediante referencias en los índices
ordenados según los diversos criterios.
b. Otra mejora que se puede hacer es generar los índices mediante árboles (B 𝑜 𝐵 + ), en este caso
se construyen 3 árboles en base a Nombre, Profesión y Promedio (dos alfanuméricos y uno
numérico como claves). Los árboles de profesión y promedio son especiales pues se van a repetir
varios registros con la misma clave, por tal motivo se puede modificar la información del nodo
para que almacene un arreglo o una lista enlazada ordenada, de forma que cuando se inserte
un nuevo registro de Arquitecto, por ejemplo, se agregue a la lista de ese nodo en caso de que
este repetido.

III. Búsqueda y Listados


c. Ya con los árboles construidos el proceso de listar es sencillo pues solamente se recorren para
obtener los valores en forma ascendente o descendente, y cuando se trate de un nodo con
múltiples registros, se recorre la lista de ese nodo (ascendente o descendente) y luego se
continúa el recorrido del árbol.
d. Las búsquedas pueden ser más complejas, pero con los árboles disponibles puede hacer de
una forma más sencilla. Por ejemplo:
• Suponiendo que queremos los egresados de Arquitectura que tienen calificación igual a
90. Se busca en el árbol de profesión y se encuentran los registros en las líneas 4, 5, 7,
8, 10 posteriormente se busca en el árbol de promedio y se obtienen los índices de

MCC Enrique Ayala Franco 1


registros 7, 8 y 10, entonces elegimos los que se repiten en ambos conjuntos de
resultados (operación AND).
4. Ajustar y generar las estructuras de datos necesarias para poder realizar las operaciones pedidas:
a. Listado de registros a través de los distintos árboles.
b. Búsquedas por un árbol o por varios.

5. Se debe cuidar el estilo de escritura del código sangrando o identando adecuadamente, nombrando las
variables y funciones con nombres descriptivos y documentar el código por medio de comentarios para
la descripción del archivo (descripción, autor(es), fecha) y para la descripción de cada función
(descripción, parámetros de entrada, valores de salida). Entregar documentación con JavaDoc.

Evaluación:
Interfaz, clases y documentación: 20 pts
Lectura de archivos: 10 pts.
Generación de árboles y estructuras adicionales: 40 pts
Listados: 20 pts.
Búsquedas: 20 pts

MCC Enrique Ayala Franco 2

También podría gustarte