Ingeniería
en Sistemas Computacionales
Estructura
de datos.
UNIDAD 1: INTRODUCCION A LAS ESTRUCTURAS
DE DATOS.
Profesor:
M.en C. María Alejandra Rosas Toro
Tema 1.1 Tipos de datos abstractos
Los Tipos de Datos
Abstractos (en adelante TDA, Abstract Data Types ) fueron por
primera vez propuestos por Bárbara Liskov en 1974 (“Programming with Abstract
Data Types”). Un TDA est´a caracterizado por un conjunto de operaciones
(procedimientos y funciones) denominados usualmente su interfaz pública y
representan el comportamiento del TDA; mientras que la implementación privada
del TDA está oculta al programa cliente que lo usa. Todos los lenguajes de alto
nivel tienen predefinidos TDAs; lo son los tipos denominados simples y las
estructuras predefinidas, y estos tienen sus interfaces públicas que incluyen
las operaciones (como +, -, *, [], etc.).
Por lo tanto, un Tipo de dato abstracto es un conjunto de datos u
objetos al cual se le asocian operaciones. El TDA provee de una interfaz
con la cual es posible realizar las operaciones permitidas, abstrayéndose de la
manera en como estén implementadas dichas operaciones. Esto quiere decir que un
mismo TDA puede ser implementado utilizando distintas estructuras de datos y
proveer la misma funcionalidad.
El paradigma de orientación a objetos permite el encapsulamiento de
los datos y las operaciones mediante la definición de clases e interfaces,
lo cual permite ocultar la manera en cómo ha sido implementado el TDA y
solo permite el acceso a los datos a través de las operaciones provistas por la
interfaz.
Formalmente un TAD es un tipo abstracto de datos que empaqueta a los
compontes con los que trabaja, sean estos: datos y las operaciones
significativas para su funcionamiento. En otras palabras, se encapsulan los
datos del TAD y las operaciones sobre esos datos, manteniendo ocultos los
detalles a la vista del programador o usuario que utiliza al TAD.
En los lenguajes orientados a objetos, las clases son las soluciones a los
TAD, mientras en aquellos que no soportan la orientación a objetos, será
necesario recurrir a las declaraciones y especificaciones de funciones.
Algunos
lenguajes de programación tienen características que nos permiten ampliar el
lenguaje añadiendo sus propios tipos de datos. Un tipo de dato definido por el
programador se denomina tipo abstracto de datos (TAD) para diferenciarlo
del tipo fundamental (predefinido) de datos. Por ejemplo, en Java, el tipo
Punto, que representa las coordenadas x e y de un sistema de coordenadas rectangulares,
no existe. Sin embargo, es posible implementar el tipo abstracto de datos, considerando
los valores que se almacenan en las variables y qué operaciones están
disponibles para manipular estas variables. En esencia, un tipo abstracto es un
tipo de dato que consta de datos (estructuras de datos propias) y operaciones
que se pueden realizar sobre ellos. Un TAD se compone de estructuras de
datos y los procedimientos o funciones que manipulan esas
estructuras de datos.
De lo anterior tenemos, un tipo abstracto de datos puede definirse
mediante la ecuación:
TA D = Representación (datos) + Operaciones (funciones y procedimientos)
Tipos de datos abstractos (definidos por
el programador).
Un
tipo de datos abstracto es un tipo de dato nuevo definido por el programador
que incluye:
·
La
definición de un conjunto de datos objeto, que por lo regular usan una o más
definiciones de tipo.
·
La
definición de un conjunto de operaciones abstractas (funciones) sobre aquellos
datos objeto, que usan una o más definiciones de subprogramas para definir cada
operación abstracta.
·
La
encapsulación de todo en tal forma que el usuario del tipo nuevo no puede
manipular los datos objeto del tipo, excepto por el uso de la operación
definida.
Abstracción
de datos (esto es, el diseño de los datos objeto abstractos y de las
operaciones sobre esos objetos) es una parte fundamental de la programación.
Tipos de datos abstractos genéricos.
Los
tipos de datos primarios integrados en un lenguaje con frecuencia permiten al
programador declarar el tipo básico de una nueva clase de datos objeto y
después especificar varios atributos de los datos objeto.
Referencias:
http://www.dcc.uchile.cl/~bebustos/apuntes/cc30a/TDA/
http://juanfc.lcc.uma.es/EDU/PM/5.TADs.pdf
uy bien
ResponderEliminar