Please enable JavaScript.
Coggle requires JavaScript to display documents.
Estructuras de datos no lineales - Coggle Diagram
Estructuras de datos no lineales
Las estructuras de datos no lineales son aquellas en las que los elementos no están organizados en una secuencia o lista lineal. En lugar de eso, los elementos se organizan de manera jerárquica, de manera que cada elemento puede estar relacionado con varios otros, no solo con uno anterior o siguiente.
Árboles (Trees):
Los árboles son estructuras jerárquicas que consisten en nodos conectados por aristas. El nodo raíz es el punto de inicio, y cada nodo puede tener cero o más nodos hijos.
Árbol Binario: Cada nodo tiene a lo sumo dos hijos.
Árbol Binario de Búsqueda (BST): Un árbol binario donde los nodos a la izquierda de un nodo tienen valores menores y los de la derecha tienen valores mayores.
Árbol AVL: Un árbol binario balanceado, donde la diferencia de altura entre los subárboles izquierdo y derecho no puede ser mayor que 1.
Árbol B: Un árbol auto-balanceado usado comúnmente en bases de datos.
Pros: Los árboles permiten búsquedas, inserciones y eliminaciones eficientes (O(log n) en árboles balanceados).
Contras: Si no están balanceados correctamente, la eficiencia puede caer a O(n).
Grafos (Graphs):
Un grafo es una colección de nodos (o vértices) y aristas que conectan pares de nodos. Los grafos pueden ser:
Dirigidos: Las aristas tienen una dirección (de un nodo a otro).
No dirigidos: Las aristas no tienen dirección (la relación es bidireccional).
Ponderados: Las aristas tienen un valor asociado, como el costo o la distancia.
Grafos acíclicos: No tienen ciclos (por ejemplo, un árbol es un caso especial de grafo acíclico).
Pros: Son muy flexibles y permiten representar relaciones complejas como redes sociales, rutas de navegación, dependencias entre tareas, etc.
Contras: Pueden ser complejos de manejar y requieren algoritmos especializados para búsquedas o recorridos.
Heaps:
Un heap es una estructura de árbol especializada que satisface una propiedad específica de orden. En un max-heap, el valor de cada nodo es mayor o igual que el de sus hijos, y en un min-heap, el valor de cada nodo es menor o igual que el de sus hijos.
Se utilizan principalmente en la implementación de colas de prioridad.
Pros: Permiten insertar y extraer elementos con la prioridad más alta o baja de manera eficiente (O(log n)).
Contras: No permiten un acceso eficiente a elementos arbitrarios, solo a los de mayor o menor prioridad.
Trie (Árbol de Prefijos):
Un trie es una estructura de árbol que almacena cadenas de caracteres, donde cada nodo representa un carácter de una cadena. Es especialmente útil para operaciones de búsqueda de palabras o prefijos.
Pros: Permite búsquedas rápidas de palabras, sobre todo cuando se trata de grandes volúmenes de datos como diccionarios.
Contras: Requiere más memoria que otras estructuras debido a su uso de múltiples nodos.
Tablas Hash (Hash Tables):
Una tabla hash es una estructura de datos que mapea claves a valores a través de una función hash. Las tablas hash permiten la inserción, eliminación y búsqueda de elementos de manera muy eficiente (O(1) en promedio).
Pros: Búsqueda rápida y eficiente, especialmente cuando se usan funciones hash bien distribuidas.
Contras: Pueden ser ineficaces si la función hash no distribuye las claves de manera uniforme, lo que puede resultar en colisiones.