Tipos de Datos Abstractos

De Departamento de Informatica
Saltar a: navegación, buscar

¿Qué es un Tipo de Dato Abstracto?

Formalmente, un TDA (Tipo de Dato Abstracto o ADT, en inglés) es una estructura algebraica compuesta por un conjuto de objetos abstractos, que modelan elementos del mundo, y un conjunto de operaciones para su manipulación, las cuales simulan el comportamineto que el elemento modelado tiene el el mundo del problema.

Los lenguajes de programación entregan un arsenal de tipos de datos que son nativos al lenguajes (es decir, están incorporados en este). Por lo general, para resolver problemas complejos, estos tipos de datos no nos permiten representar correctamente elementos del problema real (por ejemplo, en algún programa de un hospital, sería ideal poder definir un tipo de dato paciente. Claramente este tipo no esta incorporado en los lenguajes nativamente). Es por esto que los lenguajes entregan un arsenal de herramienta para que el programador pueda definir nuevos tipos de datos, utilizando los tipos de datos incorporados en el lenguaje y así poder crear elementos que se acercan más a la realidad del problema.

Resumiendo lo anterior, podemos definir "informalmente" que un TDA es un elemento que agrupa dos conceptos importantes: Un tipo de dato, creado por el programador y que le permite representar en el lenguaje de programación un elemento real y un conjunto de funciones que trabajan sobre estos tipos de datos.

Siguiendo el ejemplo del paciente, podriamos definir unt TDA paciente en C de la siguiente manera:

struct Paciente
{
    char nombre[50];
    int edad;
    char sexo;
    char enfermedad[20];
};

Obviamente, un paciente así "sólo" no representa nada, necesitamos un arsenal de funciones que actuen sobre este paciente, por ejemplo: ingresar un paciente al hospital, atenderlo, darlo de alta, ponerlo en la cola de espera, etc.

Otro ejemplo podria ser los números racionales. C no incorpora este tipo de dato, pero si tiene las herramientas para poder definirlo nosotros mismos. El tipo de dato Racional podria ser creado de la siguiente manera:

struct Racional
{
    int numerador;
    int denominador;
};

Ahora, las funciones que actuan sobre este dato, serían la suma de racionales, división de racionales, resta de racionales, etc.

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas