sábado, 23 de enero de 2016

Tipos abstractos de datos


Tipos abstractos de datos (TAD)

Esta definición se compondría de tres palabras, que son las que definen el concepto. Tipo = clase, abstracto = concepto y dato= información.



Estos tipos de datos los define el programador. No describe un dato en particular sino los tipos de

datos que una variable puede contener. Es un ente cerrado y autosuficiente que no requiere de contexto específico para poder ser utilizado en un programa[1].

Nos podemos apoyar en ellos para construir partes más complejas del propio lenguaje[2].

Al final el concepto nos queda como un conjunto de datos sobre los que se puede aplicar un conjunto de funciones.[3]

Debe ser muy concreta ya que el implementador la tomará como base para otros programas, y lo hará de la misma forma en la que ya la creó y el usuario lo usará teniendo esto mismo en cuenta[4].

Conceptos básicos de TAD

Estructura: En lenguaje C se utiliza ‘struct’ y en ella se almacenan datos de diferentes formatos con relación a un conjunto de información.

En el lenguaje ya representado, dicha estructura se coloca antes del int main () entre llaves y siempre lleva un ; (punto y coma) al término de la misma.

Se dice que la estructura es dinámica cuando el espacio en memoria se va obteniendo durante la ejecución, a medida que se le necesita, así, no se conoce la cantidad hasta que finaliza el programa.

Por otro lado, en las estructuras estáticas el espacio en memoria se define desde un principio. Una vez que está definida la estructura podemos acceder a ella a través de una llamada.

Variable: La programación nos indica que las variables son espacios en la memoria que cambian de contenido a lo largo de su ejecución. Se pueden definir éstas en la estructura para acceder a sus datos. Una variable de tipo puntero puede tomar como valor una dirección de memoria.

Cuando se declaran estas variables, hay que indicar de qué tipo será la variable dinámica correspondiente.

Ejemplo: Declaración: var

P: ^T               T es un identificador conocido o predefinido y que no es de tipo puntero.

Alias

En el lenguaje C++, la instrucción “typedef” permite al usuario definir alias o sinónimos, nuevos tipos de datos equivalentes a los ya existentes, con el objetivo de usar nombres más apropiados y más cortos para los tipos de datos, ya que se evita escribir “struct” en la declaración de variables.

Este tipo de instrucción se utiliza tanto con datos simples como con datos estructurados.

Sintaxis:
typedef <tipo> <identificador>;

Operaciones para las estructuras:

Entre estas operaciones vamos a distinguir a las constructoras para generar todos los datos del tipo que se está especificando. Según las elegidas puede ser qué haya una forma de representar con esas constructoras cada dato, en cuyo caso las consideraremos “libres” o que haya diferentes representaciones para un mismo dato.

Las restantes operaciones se clasifican en observadoras y modificadoras. Las primeras son aquellas que devuelven información sobre los datos que se especifican y que pertenece a otros tipos de datos ya conocidos. Las segundas son operaciones cuyo resultado es un dato del mismo tipo que se especifica.[5]

Ejemplo: Si deseamos copiar todos los datos del cliente 56 en el cliente 1 :

cliente [0] = cliente [55]

Estructuras anidadas

Son estructuras cuyos campos a su vez son estructuras. Se presentan cuando en la declaración de una estructura por lo menos uno de sus componentes es una estructura, como en el siguiente ejemplo[6].

Almacén
-          Nombre de empleado
-          Departamento
-          Sueldo
-          Domicilio
o   Calle
o   Número
o   Código Postal
o   Localidad





BIBLIOGRAFÍA


[1] Programación II. Guía 12. Tema: Tipos Abstractos de Datos (TAD's)
[2] Curso "Fundamentos de la programación: Estructuras de datos" de José Vicente Carratalá
[3] Estructuras de datos. Tipos de datos abstractos (2013). Sabrina Vega, Jalisco
[4] Estructuras de datos y Algoritmos (2003). P. Señas y S. Martig.
[5] Estructuras de datos y métodos algorítmicos (2004). N. Martí, Y. Ortega, J. Verdejo, Pearson Education
[6] Fundamentos de programación. Piensa en C. (2006) O. Cairó. Pearson Educación, Estado de México

No hay comentarios:

Publicar un comentario