Píldora TAI LXXXI; Guía Visual de Estructuras de Datos en Programación

📚 Estructuras de Datos: Guía Didáctica y Visual para Entenderlo Todo

En el fascinante mundo de la programación, las estructuras de datos son como el esqueleto sobre el cual construimos nuestros programas. Nos ayudan a organizar, almacenar y manipular información de forma eficiente. En esta guía, te presento un resumen visual y didáctico de los conceptos clave para dominar este tema.


🔹 Estructuras Estáticas vs Dinámicas

Tipo¿Cuándo se reserva la memoria?Ejemplos
EstáticasEn compilaciónArrays, cadenas
DinámicasEn ejecuciónListas, árboles, grafos, punteros, ficheros

🔸 Tipos Abstractos de Datos (TAD)

Un TAD define un conjunto de datos + operaciones posibles, independientemente de cómo se implementen.

Ejemplos:

  • Pilas
  • Colas
  • Listas
  • Árboles

👉 Se pueden construir a partir de arrays.


🔁 Recursividad

Es cuando una función se llama a sí misma. Se usa, por ejemplo, para ordenar listas (como en ordenar()).

Tipos de recursividad:

  • Simple: Una sola llamada.
  • 🔁 Múltiple: Varias llamadas.
  • 🔂 Anidada: La llamada se hace a través de otras funciones.

📦 Estructuras de Datos Estáticas

🔹 Array

  • Memoria contigua
  • Tamaño fijo
  • Homogéneos (mismo tipo)
  • Acceso directo a cualquier posición

🔹 Punteros

  • Almacenan la dirección de otra variable
  • Permiten acceder a variables de forma indirecta

💡 Usamos * para acceder al valor, y & para acceder a la dirección de una variable.


🧩 Estructuras Dinámicas Lineales (Secuenciales)

Se construyen con nodos y se pueden modificar durante la ejecución del programa.

🟦 Tipos de listas:

  • Simples: Un solo enlace al siguiente nodo.
  • Dobles: Enlaces hacia el siguiente y el anterior nodo.
  • Enlazadas: Punteros determinan el orden.
  • Densas: La posición del nodo siguiente está determinada por su contenido.
  • Reorganizables: Nodo se coloca donde encaje.
  • Circulares: El último nodo apunta al primero.

🟢 Pilas (LIFO)

  • Último en entrar, primero en salir
  • push() añade, pop() elimina

🔵 Colas (FIFO)

  • Primero en entrar, primero en salir
  • enqueue() añade al final, dequeue() elimina al inicio

🌳 Estructuras Dinámicas No Lineales (Jerárquicas)

🌲 Árboles

  • Organización jerárquica
  • Cada nodo puede tener hijos
  • El nodo más alto es la raíz

🧠 Conceptos Clave:

  • Nivel: Altura desde la raíz
  • Grado: Número de hijos de un nodo
  • Camino: Ruta entre dos nodos
  • Altura y Profundidad: Miden la distancia a la raíz o al nodo más profundo

Ejemplos de árboles:

  • Binarios: Máximo dos hijos por nodo
  • AVL: Balanceados para eficiencia
  • ABB: Árbol Binario de Búsqueda

🎯 Conclusión Visual

Aquí tienes un resumen gráfico del contenido:

Estáticos: Arrays, homogéneos, memoria en compilación
Dinámicos: Listas, árboles, memoria en ejecución
TADs: Se centran en «qué hacen», no «cómo»
Punteros: Dirección vs Valor
Listas: Enlazadas, circulares, dobles
Pilas/Colas: LIFO vs FIFO
Árboles: Binarios, AVL, orden, grado, camino…


Si te gustó este resumen visual, ¡compártelo y guarda el blog para repasar antes de tus exámenes o entrevistas técnicas!

Deja un comentario