LICENCIATURA EN TECNOLOGIA E INFORMACION
Estructuración de datos
Actividad 2: Resumen del tema tipo de datos abstractos
ALUMNO: JULIO ALEJANDRO ARREGUIN PEREZ
Concepto de TDA
Un Tipo de Dato Abstracto (TDA) es un modelo que define valores y las operaciones que se
pueden realizan sobre ellos. Y se denomina abstracto ya que la intención es que quien lo utiliza,
no necesita conocer los detalles de la representación interna o bien el cómo están implementadas
las operaciones.
Es por esto una práctica que nos provee un grado de abstracción que permite desacoplar al código
que usa un TDA de aquel código que lo implementa.
TDA Diccionario
Un Diccionario o Mapa (en software) es una abstracción que vincula un dato con otro. Así como
en el diccionario de idioma, asocia una palabra con su definición, y podemos buscar en el a través
de la palabra. El TDA Mapa/Diccionario permite tener muchas "entradas" y cada una de estas
tendrá una "clave" y un "valor" asociado. Es interesante notar que el concepto de
diccionario/mapa no define cómo se asociarán esos datos, es decir cómo se van a guardar
internamente los valores. Entonces podríamos tener una implementación que usa dos listas
paralelas, u otra que use un array de tuplas, etc. etc. Para el código que utiliza el
Diccionario/Mapa es indiferente. Es algo así como un detalle de implementación.
Acá vemos un ejemplo muy simple donde un fragmento de código sabe recorrer un mapa e
imprimir "clave=valor".
Este código puede funcionar tanto con un TDA implementado como un vector de tuplas, así
como también con una implementación diferente que utilice dos vectores paralelos (uno para las
claves y otro para los valores).
Objetivo (Abstracción -> Flexibilidad)
El objetivo o la utilidad de la idea de usar TDA's es la de conseguir una mayor flexibilidad. Y
esto lo logramos mediante el concepto más general de abstracción. Como vimos en el ejemplo, el
código que utiliza el TDA no conoce ni depende de la implementación de las operaciones.
La abstracción es probablemente el concepto más general y más importante de la programación
(o cualquier otra resolución de problemas).
Características y uso de recursos informativos
en los Programas educativos de UDGVirtual
En parte tiene que ver con la famosa idea del divide y conquista. Porque separamos los
problemas, hacemos que diferentes partes de la aplicación se ocupen de una y solo una parte del
problema. Así, si luego alguna de ellas cambia, las demás partes no se ven afectadas (o al menos
el impacto no es tan grave).
Es por esto que obtenemos flexibilidad, ante el cambio.
Todo esto muy lindo en teoría. Para bajarlo más a detalle, necesitamos entender otros dos
conceptos: Encapsulamiento y Ocultamiento de la Información
Ejemplos
1. #define MAX 5000
struct SET
{A e[MAX];
int tope;
};
2. #ifndef Racionales
#define Racionales
typedef struct TipoRacional* Racional;
< declaraciones de operaciones sobre Racionales >
#endif Racionales