PDF de programación - Tema 1. Tipos Abstractos de Datos - Programación II

Imágen de pdf Tema 1. Tipos Abstractos de Datos - Programación II

Tema 1. Tipos Abstractos de Datos - Programación IIgráfica de visualizaciones

Publicado el 16 de Agosto del 2019
821 visualizaciones desde el 16 de Agosto del 2019
363,2 KB
52 paginas
Creado hace 7a (10/02/2017)
Programación II
Tema 1. Tipos Abstractos de Datos

Iván Cantador y Rosa Mª Carro
Escuela Politécnica Superior
Universidad Autónoma de Madrid

Contenidos

1

• Tipos Abstractos de Datos (TAD)
• Ejemplos de TAD

• TAD Cadena de caracteres
• TAD Número complejo
• TAD Conjunto

• Implicaciones de los TAD
• Programación Orientada a Objetos (POO)

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Contenidos

2

• Tipos Abstractos de Datos (TAD)
• Ejemplos de TAD

• TAD Cadena de caracteres
• TAD Número complejo
• TAD Conjunto

• Implicaciones de los TAD
• Programación Orientada a Objetos (POO)

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)
• Tipo Abstracto de Datos (TAD)

3

• Conjunto de datos con entidad propia (identidad definida) y 

funciones primitivas (operaciones básicas) aplicables sobre esos 
datos
• Ejemplo de TAD: NumeroComplejo

• Datos: componente real + componente imaginaria
• Primitivas: conjugado, módulo, suma, resta, …

• Importante: funciones adicionales del TAD se construirán sólo a 

partir de sus primitivas

• Estructura de Datos (EdD)

• Tipos de datos concretos con los que representar los datos del 
TAD y a partir de los que implementar las funciones primitivas
• Ejemplos de EdD para el TAD NumeroComplejo: 

float cReal, cImaginaria;

float componentes[2];

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)
• Tipo Abstracto de Datos (TAD)

4

• Conjunto de datos con entidad propia (identidad definida) y 

funciones primitivas (operaciones básicas) aplicables sobre esos 
datos
• Ejemplo de TAD: NumeroComplejo

• Datos: componente real + componente imaginaria
• Primitivas: conjugado, módulo, suma, resta, …

• Importante: funciones adicionales del TAD se construirán sólo a 

partir de sus primitivas

• Estructura de Datos (EdD)

• Tipos de datos concretos con los que representar los datos del 
TAD y a partir de los que implementar las funciones primitivas
• Ejemplos de EdD para el TAD NumeroComplejo: 

float cReal, cImaginaria;

float componentes[2];

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)
• Tipo Abstracto de Datos (TAD)

5

• Conjunto de datos con entidad propia (identidad definida) y 

funciones primitivas (operaciones básicas) aplicables sobre esos 
datos
• Ejemplo de TAD: NumeroComplejo

• Datos: componente real + componente imaginaria
• Primitivas: conjugado, módulo, suma, resta, …

• Importante: funciones adicionales del TAD se construirán sólo a 

partir de sus primitivas

• Estructura de Datos (EdD)

• Tipos de datos concretos con los que representar los datos del 
TAD y a partir de los que implementar las funciones primitivas
• Ejemplos de EdD para el TAD NumeroComplejo: 

float cReal, cImaginaria;

float componentes[2];

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)

6

• Todo TAD se definirá como un modelo abstracto de unos 

elementos (datos) y unas operaciones (primitivas) sin 
tener en cuenta sus estructura e implementación 
particulares
• TAD Número complejo: módulo, conjugado, suma, resta, 

producto, cociente, …

• TAD Conjunto : tamaño, complemento, unión, intersección, …
• TAD Lista: inserción de un elemento, búsqueda de un elemento, 

eliminación de un elemento, visualización, …

• TAD Grafo: creación de un grafo vacío, inserción de un vértice, 
inserción de una arista, eliminación de un vértice, eliminación 
de una arista, distancia entre dos vértices, …

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)

7

• Abstracciones en un TAD
• Abstracción de los datos
• Abstracción de las funcionalidades

interfaz pública

funciones primitivas

TAD

f5

f1

datos

f4

f2

f3

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)
• Abstracciones en un TAD
• Abstracción de los datos

8

‐ Encapsulamiento de los datos, sin permitir su acceso directo, 

que se realizará sólo mediante funcionalidades definidas al 
efecto

‐ Ej.:

Complejo c = complejo_crear(2.0, -5.0)
real r = complejo_getParteReal(c)

• Abstracción de las funcionalidades

‐ Ocultación de la implementación de las funcionalidades a 
través de funciones primitivas, constituyendo la interfaz de 
acceso y manejo de los datos internos

‐ Ej.:  real m = complejo_modulo(c)

Complejo c = complejo_sumar(c1, c2)

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)

9

• Abstracción de los datos

• Posibilita la definición y posterior (re)utilización de nuevos tipos 
de datos, dando a conocer sus posibles valores y las operaciones 
que trabajen sobre ellos, y evitando tener que conocer/entender 
su estructura interna
‐ El acceso a los valores de dichos datos se realiza sólo 

mediante las operaciones definidas sobre dicho TAD, sin 
preocuparnos de cómo son representados y tratados 
internamente

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)

10

• Abstracción de las funcionalidades

• Permite la realización de determinadas acciones sobre los datos 
sin tener que conocer cómo se hacen, en qué tiempo y con qué 
recursos; Dichas acciones:
‐ Representan las operaciones más significativas
‐ Tienen normalmente una relación casi directa entre las 

abstracciones funcionales obtenidas en el diseño 
descendente: subproblemas

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Tipos Abstractos de Datos (TAD)
1. Especificación del TAD

11

• ¿Qué nombre darle?
• ¿Qué datos (nombres, tipos, valores restringidos) tiene?
• ¿Cuáles (nombres,entradas,salidas) son sus funciones primitivas 

fundamentales, que acceden/modifican sus atributos?

• ¿Cuáles son funciones derivadas que se pueden implementar a 

partir de las fundamentales?

2. Definición de la EdD
3. Atendiendo a la EdD elegida, pseudocódigo e 

implementación de las primitivas fundamentales y 
derivadas

4. Documentación del código (especialmente la interfaz)

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

12

Este
tema

Ejemplos de TAD
• TAD Cadena de caracteres
• Lista ordenada de caracteres

• TAD Número complejo

• Número complejo, con parte real y parte imaginaria

• TAD Conjunto

• Colección de elementos no repetidos

• Algunos otros TAD

• TAD Pila
• TAD Cola
• TAD Lista enlazada
• TAD Árbol
• TAD Grafo

Programación II

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Contenidos

13

• Tipos Abstractos de Datos (TAD)
• Ejemplos de TAD

• TAD Cadena de caracteres
• TAD Número complejo
• TAD Conjunto

• Implicaciones de los TAD
• Programación Orientada a Objetos (POO)

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres
• EdD

• Colección finita de caracteres pertenecientes a un alfabeto 
s = [c1 c2 … cn] ci∈
longitud(s)  0

si S = ∅⇒ longitud(s) = 0

14

• Habrá una longitud máxima de cadena permitida CC_MAX y un 

carácter especial de fin de cadena 
p.e. con CC_MAX=8 y carácter de fin de cadena @.
La cadena “PROG2” de longitud 5 sería:

P

R

G

2 @

O
• Funciones primitivas
• cc_crear, cc_liberar
• cc_vacia, cc_llena
• cc_insertarCaracter, cc_extraerCaracter

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres

15

• CCCrear

• Prototipo: CC cc_crear()
• Descripción: crea y devuelve una cadena de caracteres 
“vacía”, es  decir, sólo almacenando en ella el carácter 
especial de fin de cadena

• Entrada: ninguna
• Salida: cadena creada, vacía 

(habría que especificar qué devolver en caso de error)

• Modifica: nada

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres

16

• CCLiberar

• Prototipo: void cc_liberar(CC s)
• Descripción: libera una cadena dejándola “vacía”
• Entrada: cadena s
• Salida: ninguna
• Modifica: cadena s, dejándola vacía

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres

17

• CCVacia

no vacía

• Prototipo: boolean cc_vacia(CC s)
• Descripción: comprueba si una cadena de caracteres está o 

• Salida: verdadero si S = ∅, falso en caso contrario

• Entrada: cadena s

• Modifica: nada

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres

18

• CCLlena

• Prototipo: boolean cc_llena(CC s)
• Descripción: comprueba si una cadena de caracteres está o 
no llena, es decir si su longitud es igual o menor a CC_MAX

• Entrada: cadena s
• Salida: verdadero si la longitud de s es CC_MAX, falso en caso 

contrario

• Modifica: nada

Programación II – Tema 1: Tipos Abstractos de Datos

Escuela Politécnica Superior

Universidad Autónoma de Madrid

TAD Cadena de caracteres

19

• CCInsertarCaracter

• Prototipo: status cc_insertar(CC s, car c, pos p)
• Descripción: inserta un carácter dado en una posición 
determinada de una cadena (que queda modificada)

• Entrada: cadena s, carácter c a insertar, posición p en la que 

insertar c

• Salida: OK si la ins
  • Links de descarga
http://lwp-l.com/pdf16465

Comentarios de: Tema 1. Tipos Abstractos de Datos - Programación II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad