2. Contenido
•Tipos de Datos Abstractos
•Modularidad
•Uso de TDA
•Manejo de Memoria Estática
•Manejo de Memoria Dinámica
Miguel Angel Vázquez Acosta Agosto 2012
3. Tipos e Datos Abstractos
•Un tipo de Datos es una colección de valores
•Han sido estudiados los tipos de datos que
implementan lenguajes como ADA o Java (Boolean,
Integer, Character...)
• Estos tipos son conocidos como “tipos simples”
• Estos tipos pueden ser utilizados en nuestros
programas sin necesidad de que los detalles sobre su
implementación sean conocidos
Miguel Angel Vázquez Acosta Agosto 2012
4. 1.- Tipos de Datos estándares
Enteros
Reales
Carácter
Lógicos
2.- Tipos de Datos Definidos por el usuario
De Subrango
Enumerativos
Tipos de datos Simple Definidos por el Usuario
Númericos (Integer, real) TYPE nombre=primerdato…ultimo dato
Lógicos (Boolean)
Carácter (Char, string)
Miguel Angel Vázquez Acosta
6. •Podemos encontrar varias definiciones para el concepto de
Tipo Abstracto de Datos (TAD)
TAD: Conjunto de Operaciones. Weiss, Data Structures
andAlgorithms.
p.46.
TAD: Modelo matemático con una serie de operaciones
definidas en ese
modelo. Aho, Hopcroft, Ullman, Data Structures and
Algorithms. p.11.
TAD: Tipo de datos definido de forma única mediante un tipo y
un
conjunto de operaciones definidas sobre el tipo. Hernández,
Lázaro,
Dormido, Ros. Estructuras de Datos y Algoritmos. p.3.
Miguel Angel Vázquez Acosta
7. Un Tipo Abstracto de Datos es una abstracción donde
se encuentran encapsulados los estados potenciales
en los que se puede encontrar una entidad de ese tipo
y las operaciones que pueden realizarse sobre ella.
Abstraer: Separar por medio de una operación
intelectual las cualidades de un objeto para
considerarlas aisladamente o para considerar el
mismo objeto en su pura esencia o noción.
Como se ha mencionado, se trata de una abstracción.
No se incluyen detalles sobre la implementación de las
operaciones.
Los TAD son independientes por completo de la
implementación.
Miguel Angel Vázquez Acosta
8. Debido a todo lo expuesto, el diseñador de un TAD debe
enfrentarse a tres pasos bien distintos, pero íntimamente
relacionados:
1. Análisis de datos y operaciones
2. Elección del TAD
3. Elección de la implementación
Una especificación algebraica de un TAD tiene dos
componentes:
1. Signatura (Sintaxis): Se compone de
a) Definición de los posibles valores del tipo
b) Operaciones definidas
2. Axiomas (Semántica): Relaciones y restricciones
que se establecen sobre el modelo
Miguel Angel Vázquez Acosta
9. TAD Booleano;
SIGNATURA
VALORES
BOOLEAN={TRUE,FALSE}
OPERACIONES
NOT:BOOLEAN BOOLEAN
Miguel Angel Vázquez Acosta
10. AXIOMAS
INIC(p) = p
NOT(TRUE) = FALSE
NOT(NOT(p)) = p
p OR NOT(p) = TRUE
p OR p = p
p AND NOT(p) = FALSE
p AND p = p
Miguel Angel Vázquez Acosta
11. De forma general, es una forma de ver una estructura de datos:
enfocándose en lo que esta hace e ignorando como hace su
trabajo, es decir, el ADT deberá cumplir con ciertas
propiedades, pero la manera como estará implementado puede
variar, aún empleando el mismo lenguaje. Por ejemplo, el ATD
pila puede ser implementado con un arreglo o bien con una lista
enlazada. Varios de los algoritmos que serán discutidos en este
material se aplicarán directamente a estructuras de datos
específicas. Para la mayoría de las estructuras de datos, se
requiere que hagan las siguientes tareas:
•Insertar un nuevo elemento
•Buscar un elemento indicado
•Borrar un elemento indicado.
Miguel Angel Vázquez Acosta
14. Estructuras con Memoria Estática
Ventajas
1 Eficientes al estar todos los elementos contiguos en memoria.
2 Fácil acceso posicional.
Inconvenientes
1 Tamaño del vector puede estar determinado en tiempo de compilación.
2 Si se puede cambiar de tamaño, el redimensionamiento suele ser costoso.
3 Desperdicia memoria para estructuras poco llenas.
4 Desplazar subvectores dentro del vector es costoso.
Miguel Angel Vázquez Acosta