Sie sind auf Seite 1von 14

DISEÑO E IMPLEMENTACIÓN

DE ESTRUCTURAS DE DATOS

-DIED-

Electiva Área Programación


3er. Año- ISI -FRSF- UTN

1
DISEÑO
E
IMPLEMENTACIÓN
DE
ESTRUCTURAS DE DATOS

???
Que nos dice

2
Que es esto?
1 siete 2
6 cinco 0
4 nueve 3
5 quince 7
0 ocho 0
0 once 0
8 uno 0
0 diecisiete 0
0 cero 0

3
Y esto?
1 siete 2
siete
6 cinco 0
4 nueve 3 nueve
cinco
5 quince 7
0 ocho 0
uno ocho quince
0 once 0
8 uno 0
0 diecisie 0 cero
once dieci
te siete
0 cero 0

4
ESTRUCTURA DE DATOS :

 Representación apropiada de los datos junto con las


operaciones permitidas.

 Típicamente todas las ED permiten inserciones arbitrarias,


pero varían en como permiten el acceso a los miembros del
grupo.

 Las ED nos permiten lograr un importante objetivo de la POO:


la reutilización de componentes

WEISS - 2000

5
NECESIDAD de Estructuras de Datos

La mayoría de los lenguajes de programación


soportan diferentes estructuras de datos y además
permiten a los programadores crear sus propias nuevas
estructuras, con el objetivo de resolver del modo más
eficiente posible una aplicación

Es necesario una elección de la estructura de datos


adecuada.

6
NECESIDAD de Estructuras de Datos
Selección centrada en los datos:

1. Analizar el problema para determinar las restricciones que debe


cumplir una posible solución

2. Determinar las operaciones básicas que debe soportar y cuantificar


las restricciones de recursos de cada una ( encontrar, insertar, suprimir)

3. Seleccionar la estructura de datos que cumple mejor los requisitos

Diseño de datos y Implementación


Representación
operaciones de esa
de los datos
sobre ellos representación

7
UN CASO : un diccionario de datos
Crear, emplear y mantener un diccionario de datos

alfa beta beta2 beta3 delta

alfa beta beta2 beta3 delta

a alfa
b beta beta2 beta3 beta3
d
delta
beta delta
a alfa
beta alfa beta2
b
c beta2
beta3
z

a b c z
delta ….y muchas más
8
Crear, emplear y mantener un diccionario de datos

 1-ARREGLO LINEAL (con búsqueda binaria):


Acceso rápido -Eliminación compleja – Inserciones complejas
(ordenadas)

 2-LISTA ENLAZADA: Inserciones y Eliminaciones rápidas pero


Acceso lento.

 3-ARREGLO INDICE Y LISTAS (Listas de elementos que


comienzan con la misma letra): Lento cuando la mayoría de los
elementos del diccionario comienzan con la misma letra.

 4-TABLA INDICE Y LISTAS (Las filas para la primera letra y las


columnas para la segunda): Lento cuando los elementos tienen
los dos primeros caracteres comunes.
9
......(continúa) Emplear y mantener un diccionario

 5- TABLA INDICE Y LISTAS (Las filas para la primera letra y las


columnas para última letra): Idem anterior. No hay se garantiza
rapidez ni equidad de acceso.

 6-TABLA HASH (función de direccionamiento y manejo de


desbordes): Problema cuando el tamaño máximo no está
determinado y puede ser muy grande.

 7-ARBOLES BINARIOS DE BUSQUEDA: Mayor eficiencia


(satisface la búsqueda ordenada y permite inserciones y
eliminaciones con relativa rapidez)- Problema cuando los
elementos se insertan ordenados- Idem lista enlazada.

10
......(continúa) Emplear y mantener un diccionario

 8-ARBOLES AVL (árb. bin. de búsq. equilibrados) (Ningún


elemento está a demasiada profundidad): Acceso eficiente -
Inserciones y eliminaciones lentas (complejas) recorrido
descendente (para establecer el lugar) y luego ascendente (
para ajustar el equilibrio)

 9-ARBOLES ROJINEGROS (árb. bin. de búsq. con nodos


coloreados): Operaciones logarítmicas en el peor de los casos-
Las inserciones y eliminaciones requieren solo recorrido
descendente-

11
OBJETIVOS de DIED
Generales:

• Realizar un estudio de las estructuras de datos dinámicas,


• materializadas en diseños en el marco de la programación
orientada a objetos,
• con énfasis en los aspectos técnicos de las implementaciones
• y en los algoritmos para aplicaciones características de cada tipo
de estructura.

• El lenguaje Java, como herramienta moderna, reúne


características adecuadas y atractivas para completar esta
capacitación en el área de Programación.

12
OBJETIVOS de DIED
Particulares:
1. Análisis de los modelos, las abstracciones y los tipos de
implementaciones de las estructuras de datos dinámicas.
2. Empleo de los conceptos de objetos para diseñar las estructuras de
datos e implementar su funcionamiento
3. Tratamiento de algoritmos de carácter general para la manipulación
de las diferentes estructuras, vinculándolos conceptual y
operativamente.
4. Valorar las propiedades y particularidades que las estructuras de
datos dinámicas brindan para la solución de diferentes problemas de
tratamiento de la información.
5. Introducción a formas de analizar la conveniencia de algunas
soluciones sobre otras
6. Instalación y empleo de herramientas de programación
7. Adopción de herramientas y buenas prácticas actualizadas e
integrales.
13
PROMOCIÓN DIRECTA
Para aprobar la asignatura se requiere:
• Cumplir con el requisito de asistencia
• Aprobar las 2 pruebas parciales
• Participar y Entregar en tiempo y forma satisfactoria: 4 de los 5
trabajos de taller
• Entregar en tiempo y forma satisfactoria el trabajo práctico.
• Aprobar el coloquio del trabajo práctico
• Aprobar el 80% de las actividades de seguimiento

 La calificación final de la asignatura será un promedio ponderado de las


calificaciones de cada instancia

 Materiales y gestión a través del campus virtual

14

Das könnte Ihnen auch gefallen