Estructuras de Datos

Las estructuras de datos más importantes que debes dominar para pasar entrevistas técnicas.

Lineal
Array
Una colección de elementos almacenados en ubicaciones contiguas de memoria.
Time Complexity: Acceso: O(1), Búsqueda: O(n), Inserción: O(n), Eliminación: O(n)
Usos comunes: Almacenamiento de datos secuenciales, Buffers temporales, Procesamiento de listas ordenadas
Non-Linear
Binary Tree
Árbol donde cada nodo tiene como máximo dos hijos.
Time Complexity: Acceso: O(log n), Búsqueda: O(log n), Inserción: O(log n), Eliminación: O(log n)
Usos comunes: Expresiones matemáticas, Árboles de decisión, Jerarquías de datos
No linear
HashMap
Estructura que implementa un array asociativo usando una función hash.
Time Complexity: Acceso: N/A, Búsqueda: O(1)*, Inserción: O(1)*, Eliminación: O(1)
Usos comunes: Caches, Indexación de datos, Tablas simbolicas
Linear
Queue
Estructura FIFO (First In First Out) con operaciones enqueue y dequeue.
Time Complexity: Acceso: O(n), Búsqueda: O(n), Inserción: O(1), Eliminación: O(1)
Usos comunes: Colas de impresión, Sistemas de mensajería, Planificación de tareas
Lineal
Singly Linked List
Colección lineal donde cada elemento apunta al siguiente.
Time Complexity: Acceso: O(n), Búsqueda: O(n), Inserción: O(1), Eliminación: O(1)
Usos comunes: Implementación de stacks y queues, Navegación secuencial, Manejo eficiente de inserciones y eliminaciones
Linear
Stack
Estructura LIFO (Last In First Out) con operaciones push y pop.
Time Complexity: Acceso: O(n), Búsqueda: O(n), Inserción: O(1), Eliminación: O(1)
Usos comunes: Navegación del historial del navegador, Deshacer y rehacer acciones, Evaluación de expresiones
Non-Linear
Trie
Estructura tipo árbol para almacenar strings con prefijos comunes.
Time Complexity: Acceso: O(L), Búsqueda: O(L), Inserción: O(L), Eliminación: O(L)
Usos comunes: Autocompletado, Correctores ortográficos, Filtrado por prefijo, Sistemas de búsqueda
Non-Linear
Binary Search Tree
Árbol binario donde el hijo izquierdo es menor que el padre y el derecho es mayor.
Time Complexity: Acceso: O(log n), Búsqueda: O(log n), Inserción: O(log n), Eliminación: O(log n)
Usos comunes: Búsquedas rápidas, Estructuras jerárquicas ordenadas, Operaciones de rango
Linear
Doubly Linked List
Una Doubly Linked List (Lista Doblemente Enlazada) es una estructura de datos lineal donde cada nodo tiene una referencia tanto al siguiente como al nodo anterior.
Time Complexity: Acceso: O(n), Búsqueda: O(n), Inserción: O(1), Eliminación: O(1)
Usos comunes: Navegación hacia adelante y atrás, Implementación de listas y editores de texto, Cache con LRU
Non-Linear
Graph
Estructura no lineal compuesta por vértices y aristas.
Time Complexity: Acceso: O(1), Búsqueda: O(V+E), Inserción: O(1), Eliminación: O(V+E)
Usos comunes: Redes sociales, Sistemas de recomendación, Mapas y rutas, Redes de comunicación
Non-Linear
Heap
Estructura de árbol especializada que cumple la propiedad de heap.
Time Complexity: Acceso: O(1), Búsqueda: O(n), Inserción: O(log n), Eliminación: O(log n)
Usos comunes: Colas de prioridad, Algoritmos de grafos como Dijkstra, Ordenamiento Heap Sort