Escudo ITSL Personaje
Unidad I

1.2 Tipos de datos Abstractos

M.A.T.S.I. Juan Agustín Aragón Guardado
▶ Usa las flechas para avanzar
TecNM Instituto Tecnológico Superior de Lerdo
TecNM · ITSL

Definición de TDA

Un Tipo de Dato Abstracto (TDA) es un modelo matemático para tipos de datos que permite ampliar los tipos definidos por el lenguaje de programación. Consta de datos y de las operaciones que se pueden realizar sobre ellos.

Define el comportamiento y las operaciones sobre dicho tipo de datos.
💡 Piénsalo como el control remoto de una TV
No necesitas saber cómo funciona el circuito interno para usar los botones "encender", "subir volumen" o "cambiar canal". Un TDA es igual: te dice qué puedes hacer, sin obligarte a saber cómo está construido por dentro.
Toca la analogía para ver el ejemplo
Estructura interna

Partes que forman un TDA

Toca cada tarjeta para ver un ejemplo

Atributos

Tipos de datos, identificadores, etc.

Ejemplo en una Pila: el arreglo interno de elementos y el identificador "tope" que marca la cima.
Funciones

Operaciones válidas para manipular los datos (atributos).

Ejemplo en una Pila: las funciones push() para insertar y pop() para eliminar.
Un TDA describe QUÉ hace una estructura de datos, pero no CÓMO lo hace.
Ejemplos comunes de TDAs · 1 de 3

Listas

Una secuencia ordenada de elementos donde se puede: agregar, eliminar y acceder por posición.

Inicio
La lista está vacía. Agrega tu primer nodo.
Cada nodo apunta al siguiente — por eso decimos que están "enlazados". 🔗
Avatar
Ejemplos comunes de TDAs · 2 de 3

Colas

FIFO: First In, First Out — el primero en entrar es el primero en salir.

Final →
→ Frente
La cola está vacía.
Ejemplos comunes de TDAs · 3 de 3

Pilas

LIFO: Last In, First Out — el último en entrar es el primero en salir.

La pila está vacía.
Avatar
Como una pila de platos: solo puedes quitar el de arriba. 🍽️
Representación base

¿Sobre qué se construyen los TDAs?

Representación baseEstructuras de datos
Arreglos
Bloques contiguos de memoria, de tamaño fijo
  • Pilas
  • Colas
  • Colas circulares
Apuntadores
Cada elemento "apunta" al siguiente, tamaño flexible
  • Listas enlazadas
  • Listas dobles
  • Árboles
  • Grafos
Diseño de sistemas con estructuras

Supongo que te piden diseñar
estos sistemas...

Toca cada caso para ver sus atributos

Control de pacientes de un médico
Paciente
  • Nombre
  • Fecha de nacimiento
  • Sexo
  • Tipo de sangre
  • Peso
Control de inventario de una ferretería
Producto
  • Nombre
  • Descripción
  • Precio
  • Cantidad
  • Proveedor
  • Unidad de medida
Antes de seguir...

Piénsalo un momento

Datos completamente distintos (pacientes vs. productos)
1

¿Se podría diseñar un sistema que atienda ambos casos?

2

¿Se puede diseñar un sistema genérico que ordene estos datos tan diferentes?

3

¿El sistema pudiera administrar ambas situaciones?

Avatar
Spoiler: sí se puede. La respuesta está en la siguiente diapositiva 👀
La respuesta

¿Cómo?

Diseño de clases genéricas con comportamiento polimórfico
Una misma estructura (por ejemplo, una lista o una pila) puede almacenar pacientes, productos o cualquier otro tipo de dato — sin reescribir el código para cada caso. Eso es lo que hace poderoso a un TDA bien diseñado.
¡Eso es exactamente lo que vamos a construir en las próximas clases! 🚀
Avatar
1 / 10