Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introducción a Estructuras de Datos - Coggle Diagram
Introducción a Estructuras de Datos
CONCEPTOS
ESTRUCTURA DE DATOS
¿Qué es?: Organización eficiente de datos en memoria.
Propósito: Optimizar recursos (RAM y procesador).
Ventaja: Facilita buscar, insertar y eliminar.
Sin ellas: Procesos lentos y desordenados.
DIFERENCIAS
Dato: Valor o símbolo sin procesar.
Información: Conjunto de datos con sentido o contexto.
Estructura: Forma de organizar o almacenar esos datos en el sistema.
IMPORTANCIA
Permite organizar la información eficientemente, acceder rápido a ella y mantener el programa ordenado y fácil de entender.
NIVELES DE ORGANIZACIÓN
Registro: Conjunto de campos que forman a una entidad (ej. datos de un estudiante).
Archivo: Colección de muchos registros organizados para consultarse.
Campo: Característica específica de un dato (ej. nombre o edad).
Ejemplo: “Matricula: A001, Nombre: Ángel, Carrera: Ciencia de Datos, promedio: 9.0”.
CLASIFICACIÓN
POR ORGANIZACIÓN
LINEALES
Matrices: Tamaño fijo, uso de índices numéricos.
Listas: Secuencia de nodos con apuntadores.
Pilas (LIFO): El último en entrar es el primero en salir.
Colas (FIFO): El primero en entrar es el primero en salir.
NO LINEALES
Árboles: Estructura con nodo raíz y ramificaciones (hijos).
Grafos: Red de nodos conectados por aristas, sin jerarquía.
POR MEMORIA
Estáticas: Tamaño fijo definido desde el inicio de la compilación. Memoria predecible y acceso rápido. Ej: Arreglo para 7 temperaturas semanales.
Dinámicas: Tamaño variable, se expanden o contraen durante la ejecución. Flexibles, evitan desperdicio de espacio. Ej: Lista para transacciones en tiempo real.
POR TIPO DE DATO
Tienen memoria contigua, tamaño predecible y acceso por índice.
Heterogéneas: Permiten almacenar y mezclar distintos tipos de datos en la misma estructura.
Homogéneas: Almacenan exclusivamente el mismo tipo de dato.*
OPERACIONES BÁSICAS
Eliminación: Borrar un dato innecesario y reacomodar el resto.
Búsqueda: Encontrar un elemento por valor exacto o posición.
Recorrido: Visitar cada elemento en un orden específico para leerlo o modificarlo.
Inserción: Agregar un dato nuevo a la estructura.
EFICIENCIA
COMPLEJIDAD TEMPORAL
Uso: Usa notación Big O para ver cómo crece el esfuerzo de la CPU, sin medir segundos.
Definición: Memoria total que necesita el algoritmo para ejecutarse.
COMPLEJIDAD ESPACIAL
Espacio Auxiliar: Memoria extra usada aparte de los datos de entrada.
Ejemplo: Usar variables simples es O(1); crear un arreglo nuevo es O(n).
Definición: Memoria total que necesita el algoritmo para ejecutarse.
NOTACIÓN BIG O
Función: Indica cuántas operaciones hará el algoritmo para comparar su escalabilidad.
Curvas: O(1) es constante y eficiente; O(n^2) dispara el consumo de recursos al crecer los datos.
Ejemplo: Buscar por ID en lista O(n) vs en Tabla Hash O(1)
ELECCIÓN DE ESTRUCTURA
Impacto: Define la velocidad del programa y el consumo de memoria. Una mala elección satura la CPU o la memoria.
Ejemplo: Usar una Cola (FIFO) para la fila del cine respeta el orden real de atención, evitando errores de usar una Pila (LIFO).
TIPOS DE DATOS ABSTRACTOS (TDA)
FUNDAMENTOS
TDA vs Estructura: El TDA define el modelo lógico (qué hacer), y la estructura de datos define el almacenamiento físico en memoria
Abstracción: Principio para ocultar detalles internos y exponer solo lo esencial para reducir la complejidad. Los TDA son abstracción aplicada al diseño de datos.
¿Qué es un TDA? : Modelo matemático que define valores y operaciones sin mostrar su implementación interna.
Ejemplo: Pila (LIFO)
Interfaz vs Implementación: La interfaz muestra los controles disponibles (qué hace), y la implementación oculta el mecanismo interno (cómo lo hace)
TDA DE USO COMÚN
LISTA
Operaciones: Insertar, eliminar, buscar, recorrer.
Ejemplo: En Python: Lista_numeros = [1, 2, 3, 4]
Siendo Lista_numeros la variable que almacena la lista.
Principio: Elementos ordenados con índice numérico desde 0, tamaño variable.
CONJUNTO / SET
Operaciones: Añadir, eliminar, unión, intersección.
Ejemplo: Borrar correos repetidos en una lista de registros.
Principio: Elementos únicos sin orden, elimina duplicados automáticamente
COLA / QUEUE
Principio: FIFO (Primero en entrar, primero en salir).
Operaciones: Enqueue (agregar al final), Dequeue (sacar del frente).
Ejemplo: Entra: A → B → C → D
Sale: A → B → C → D
Es similar a una fila de personas: quien llega primero es atendido primero.
DICCIONARIO / MAPA
Operaciones: Búsqueda directa ultrarrápida por clave.
Ejemplo: Buscar datos de un empleado con empleados["EMP-402"]
Principio: Almacena información en pares de Clave-Valor (key-value).
PILA / STACK
Operaciones: push (insertar), pop (eliminar).
Ejemplo: Botón de deshacer Ctrl + Z.
Principio: LIFO (Último en entrar, primero en salir) por el tope.
TDA Y APLICACIONES
VENTAJAS DEL SOFTWARE
Mantenibilidad: Permite cambiar el código interno sin alterar el programa principal.
Reutilización: Componentes independientes usables en otros proyectos.
Encapsulamiento: Protege los datos internos permitiendo el acceso solo mediante operaciones definidas.
APLICACIÓN EN CIENCIA DE DATOS
Concepto: Análisis Topológico de Datos (TDA), que estudia la forma, conectividad y estructura geométrica de la información compleja en lugar de solo promedios.
Ejemplo: Detección temprana de enfermedades analizando perfiles clínicos de pacientes (los sanos forman grupos compactos y los enfermos ramas separadas antes de mostrar síntomas).
RELACIÓN CON POO
Ejemplo: Una clase Pila en Python que usa una lista internamente pero oculta su funcionamiento al usuario.
Concepto: El TDA define el comportamiento y qué operaciones ofrecer, mientras que las clases de POO lo implementan usando atributos, métodos y encapsulamiento.