Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introducción a Estructuras de Datos - Coggle Diagram
Introducción a Estructuras de Datos
Tipos de Datos Abstractos (TDA)
Fundamentos de los TDA
Definición
: Un TDA es un modelo matemático o lógico que define un conjunto de datos y las operaciones exactas que se pueden realizar sobre ellos.
Diferencia conceptual
: El TDA define "qué" se puede hacer con los datos (nivel lógico), mientras que la estructura de datos define "cómo" se implementa físicamente en la memoria.
Concepto de abstracción
: Mecanismo que permite al programador usar el tipo de dato sin necesidad de conocer o entender los detalles complejos de su funcionamiento interno.
Interfaz vs Implementación
: La interfaz define los métodos públicos disponibles para interactuar; la implementación es el código interno oculto que realiza el trabajo real.
TDA de uso común
TDA Pila
: Sigue el principio LIFO (Last In, First Out - Último en entrar, primero en salir). Sus operaciones principales son Apilar (Push) y Desapilar (Pop).
TDA Cola
: Sigue el principio FIFO (First In, First Out - Primero en entrar, primero en salir). Sus operaciones principales son Encolar (Enqueue) y Desencolar (Dequeue).
TDA Lista
: Colección secuencial de elementos donde cada uno tiene una posición (índice), permitiendo un acceso directo, inserción y eliminación en cualquier punto.
TDA Conjunto
: Colección de elementos donde no se permiten duplicados y el orden interno no importa, muy útil para operaciones matemáticas como la unión o la intersección.
TDA Diccionario o Mapa
: Colección de pares clave-valor para búsquedas rápidas. Suelen utilizar una tabla hash como base; agregar diagramas visuales y ejemplos prácticos de funciones hash a tus apuntes ayudará a comprender este mecanismo a fondo.
TDA y aplicación práctica
Relación con la Programación Orientada a Objetos
: En la POO, los TDA se implementan directamente mediante Clases (donde los datos son los atributos y las operaciones son los métodos).
Ventajas en el diseño de software
: Promueve fuertemente el encapsulamiento de datos, facilita el mantenimiento a largo plazo del código y permite una alta reutilización en distintos proyectos.
Aplicación avanzada
: Uso en disciplinas como la ciencia de datos para modelar problemas complejos, organizar de forma lógica grandes volúmenes de información y facilitar la búsqueda de patrones.
Definición y conceptos básicos
Fundamentos
Definición
: Forma particular de organizar datos en una computadora para que puedan ser utilizados de manera eficiente y estructurada.
Diferencias clave
: Dato (hecho aislado sin procesar), Información (datos procesados con significado real) y Estructura de datos (organización lógica y física).
Importancia
: Es fundamental seleccionar la estructura adecuada para resolver un problema específico asegurando el mejor rendimiento de memoria y procesador.
Conceptos relacionados
: Campo (mínima unidad de información), Registro (conjunto de campos relacionados que describen un ente) y Archivo (colección de registros).
Clasificación de las estructuras
Clasificación general
: Lineales (elementos organizados en secuencia, uno detrás de otro) y No lineales (elementos con jerarquías o múltiples relaciones, como árboles y grafos).
Por uso de memoria
: Estáticas (tamaño fijo definido en tiempo de compilación, ej. arreglos) frente a Dinámicas (tamaño que crece o se reduce durante la ejecución, ej. listas enlazadas).
Por tipo de contenido
: Homogéneas (todos los elementos almacenados son estrictamente del mismo tipo de dato) frente a Heterogéneas (permiten almacenar elementos de distintos tipos).
Operaciones básicas
: Inserción (agregar nuevos datos), Eliminación (borrar datos existentes), Búsqueda (encontrar un dato específico) y Recorrido (visitar secuencialmente todos los elementos).
Eficiencia de los algoritmos
Complejidad temporal
: Análisis que determina cuánto tiempo tarda un algoritmo en ejecutarse en función del crecimiento del tamaño de los datos de entrada.
Complejidad espacia
l: Análisis que evalúa cuánta memoria RAM adicional necesita el algoritmo para poder ejecutarse correctamente.
Notación Big O (O grande)
: Herramienta matemática clave al analizar estructuras de datos. Describe el peor escenario de rendimiento, ayudando a predecir cómo se comportará el algoritmo al procesar cantidades masivas de información.
Impacto práctico
: La elección correcta de una estructura de datos es lo que determina si un programa es rápido y eficiente, o si se vuelve lento y consume recursos excesivos.