PDF de programación - Estructuras de Datos Dinámicas: Tipo de Dato Abstracto - parte I

Imágen de pdf Estructuras de Datos Dinámicas: Tipo de Dato Abstracto - parte I

Estructuras de Datos Dinámicas: Tipo de Dato Abstracto - parte Igráfica de visualizaciones

Publicado el 27 de Diciembre del 2019
694 visualizaciones desde el 27 de Diciembre del 2019
141,7 KB
31 paginas
Creado hace 1a (03/10/2018)
Estructuras de Datos Dinámicas:

Tipo de Dato Abstracto

parte I

Programación I

Departamento de Informática

Universidad Nacional de San Luis

Argentina

Progreso de la Abstracción

• Los diferentes niveles de abstracción que posee un lenguaje,
dependen de los mecanismos proporcionados por el lenguaje
elegido:

– Ensamblador
– Procedimientos Perspectiva Funcional
– Módulos

– Paquetes Perspectiva de Datos
– Tipos de datos abstractos (TDA)

– Objetos
• TDA
• + paso de mensajes Perspectiva de Servicios
• + herencia
• + polimorfismo

Definición de la abstracción

• ¿ Que es la Abstracción?
• Supresión intencionada (u ocultación) de algunos

detalles de un proceso o artefacto, con el fin de
destacar más claramente otros aspectos, detalles o
estructuras.

• En cada nivel de detalle cierta información se muestra

y cierta información se omite.
– Ejemplo: Diferentes escalas en mapas.

• Mediante la abstracción creamos MODELOS de la

realidad.

Lenguajes de programación y

niveles de abstracción

• Los lenguajes de programación proporcionan abstracciones.

• Lenguajes Ensamblador
• Lenguajes Imperativos

Simular

– (C, Fortran, BASIC) Abstracción

• Lenguajes Específicos

– (LISP, PROLOG)

Directa, Dificultosa

• Lenguajes Orientados a Objetos puros Abstracción

– (Smalltalk,Eiffel)

• LOO Híbridos (Multiparadigma)

– C++, Object Pascal, Java,…

Directa

Abstracción

Mecanismos de Abstracción en los

lenguajes de programación

¿Qué es un TDA ?

PROGRAMADOR

Realiza Modifica

Estructuras

de Datos

Operaciones

Operaciones
disponibles

Utiliza el USUARIO

Tipos de Datos Abstractos (TDA)
• Tipos básicos:

– Ej: entero, real, carácter, etc.

– Tipos definidos por el usuario:

– Ej: Estado civil (soltero, casado, viudo, separado)
– Un tipo es el conjunto de valores que puede tomar un dato (Pascal).
– Un tipo es un conjunto de valores y un conjunto de operaciones.
• Tipo de dato abstracto:

– Ej: pila, fila, lista, irracional, persona

• Un tipo de dato abstracto es una entidad que encapsula
valores y operaciones. Los valores son sólo accesibles a
través de las operaciones definidas por el usuario. El
usuario desconoce la representación o implementación del
tipo .

Ejemplo: TDA auto

• 1° definir la/s estructura/s de datos necesarias

para almacenar los datos que necesito

- ¿Qué datos representan un auto?
- ¿Cuáles me sirven según mi problema a
resolver?
- ¿Qué tipo de dato es el mas apropiado para
cada uno de ellos?

Pensemos!!

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

8

Ejemplo: TDA auto

• 2° definir las operaciones que necesito para

trabajar con la estructura de datos definida en
el paso anterior

• Operaciones básicas:

– Inicializar auto: colocar valores por defecto (una

función si fuera necesario inicializar valores)

– Cargar y Modificar auto: cambiar los valores del

auto de a uno por vez. (Varias funciones
modificar)

– Mostrar auto: obtener los datos del auto de a uno.

Programación I - Estrucutras Dinámicas y TDA

Departamento de Unformática - UNSL

(varias funciones para obtener los datos)

9

Ejemplo: TDA auto
• Operaciones adicionales/solicitadas

– Definir funciones necesarias para calcular/operar

con la estructura según el problema a resolver

– El programador es el «dueño» de la estructura, el
usuario no conoce la implementación del TDA. El
programador puede modificar la implementación
del TDA.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

10

Consideraciones TDA en C

¿Dónde defino el TDA?
En una librería «auto.h»

¿Cómo utilizo el TDA ?
En un archivo «usoauto.c» donde incluyo la librería
auto.h (#include "auto.h") y utilizo solo las
operaciones definidas.

NO UTILIZO DIRECTAMENTE LA
ESTRUCTURA desde el programa usoauto.c

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

11

En resumen:

¿Qué debe contener un TDA?

• Una estructura de datos que permita almacenar

la información (valores del cada elemento).

• Operaciones que permitan:

– Inicializar el TDA (construye un elemento del

TDA)

– Establecer valores al TDA (valores a cada parte)
– Modificar el TDA (solo los valores posibles)
– Mostrar el TDA (cada uno de los valores)

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

12

IMPLEMENTACIÓN DE
ESTRUCTURAS DE DATOS CON TDA

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

13

Repaso de Estructuras de Datos (1)

• Nociones Generales

– Agrupación de valores que por razones lógicas,

se quiere conservar ‘juntos’.

– Cómo se incorpora un nuevo elemento a la

estructura.

– Cómo se elimina o cambia un elemento que ya

está en la estructura.

– Cómo se inspecciona un elemento que ya está en

la estructura.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

14

Repaso de Estructuras de Datos (2)
• Estos tres últimos aspectos tienen que ver
con las operaciones que pueden hacerse
sobre la estructura de datos: Poner, Sacar,
Inspeccionar.

• Orden, con respecto a las operaciones:

Cronológico, No Cronológico.
– Cómo se guardan los elementos en la estructura,

es decir en qué orden se encuentran unos con
respecto a los otros. Deben tener algún orden o
estructura.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

15

Repaso de Estructuras de Datos (3)







Cuántos elementos se pueden guardar, capacidad
de almacenamiento de la estructura: Estática /
Dinámica.
Identificar o seleccionar los elementos de la
estructura: sin ambigüedad. Selector de la
estructura, Unívoco. Explícito / Implícito.
Tipo de los datos de los elementos de la estructura.
A este tipo de dato le llamaremos tipo de dato base
de la estructura. Simples / Compuestos.
Homogéneo / Heterogéneo.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

16

Estructuras de Datos

PILAS Y FILAS

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

17

Estructuras de Datos Dinámicas:

Pila (stack) (1)

• Capacidad:

Dinámica, crece y disminuye con las

inserciones y supresiones

Por eso se habla de que la estructura puede

estar vacía

• Orden: LIFO Last In First Out.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

18

Estructuras de Datos Dinámicas:

Pila (stack) (2)

• Operaciones.

– Inicialización (init)
– Inserción (insert o push)
– Supresión (suppress o pop) tope
– Copia (copy o top o peek)
– Predicados: isEmpty, isFull.

• Selector: implícito  tope

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

19

Estructuras de Datos Dinámicas:

Pila (stack) (3)

suprimir (pop)
insertar (push) Z
insertar (push) R
insertar (push) Q

Z
R
Q

tope

isEmpty = true
isEmpty = false
(verdadero)

(falso)

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

20

Estructuras de Datos Dinámicas:

Fila o cola (queue) (1)

• Capacidad:

Dinámica, crece y disminuye con las

inserciones y supresiones

Por eso se habla de que la estructura puede

estar vacía.

• Orden: FIFO

First In First Out.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

21

Estructuras de Datos Dinámicas:

Fila o cola (queue) (2)

• Operaciones.

– Inicialización (init)
– Inserción (insert)  después del último
– Supresión (suppress)
– Copia (copy)
– Predicados: isEmpty, isFull.

primero

• Selector: implícito  primero / último

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

22

Estructuras de Datos Dinámicas:

Fila o cola (queue) (2)
suprimir
insertar Z
insertar R
Insertar Q
primero

Q

R

Z

último

isEmpty = false

(falso)

isEmpty = true
(verdadero)

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

23

Tipo de Datos Abstracto (TDA) (1)

• En inglés: Abstract Data Type (ADT).
• TDA se define a partir de las operaciones que
pueden ser realizadas sobre los datos del tipo.
• Hay modelos matemáticos para los tipos de

datos. Ej.: enteros y suma.

• Ocultamiento de la información (information

hiding).

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

24

Tipo de Datos Abstracto (TDA) (2)
Ejemplo: Stack (Pila) podría ser definido por
solo tres operaciones (funciones) sobre las pilas:
init, push, pop, y un predicado: isEmpty.
Operaciones (funciones) :

init:  Stack
push: Elem  Stack  Stack
pop: Stack  Stack  Elem
isEmpty: Stack  boolean

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

25

Tipo de Datos Abstracto (TDA) (3)
init:  Stack
push: Elem  Stack  Stack
pop: Stack  Stack  Elem
isEmpty: Stack  boolean
pop(init()) = ERROR
pop(push(e, s)) = (s, e)
isEmpty(init()) = true
isEmpty(push(e, s)) = false

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

26

Tipo de Datos Abstracto (TDA) (4)
• Lenguaje de programación: se implementa un
nuevo tipo no provisto por el lenguaje, sobre la
base de los tipos y operaciones existentes.

• TDA en C para prácticas de pilas, filas, listas

cuyo tipo base puede ser enteros (int) y
carácter (char).

• Declaraciones de variables y operaciones.

– Ej.: pila_char pila;

• Apunte TDA.

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

27

Tipo de Datos Abstracto (TDA) (5)

Ejemplo de uso (1)

/* ****** Print fila int ****** */
void printFilaInt (fila_int x) {
printf("%d ", copy(x));
suppress(&x);

while (!isEmpty(x)) {

}
printf("\n");

} /* fin de printFilaInt */

Departamento de Unformática - UNSL

Programación I - Estrucutras Dinámicas y TDA

28

Tipo de Da
  • Links de descarga
http://lwp-l.com/pdf17087

Comentarios de: Estructuras de Datos Dinámicas: Tipo de Dato Abstracto - parte I (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad