Las 5 Estructuras de Datos que Dominarán tu Próxima Entrevista Técnica
Si estás preparándote para entrevistas en empresas como Mercado Libre, Nubank, Rappi, Globant, o buscando roles remotos en startups estadounidenses, hay algo que debes saber: el 70% de las preguntas técnicas se resuelven con solo 5 estructuras de datos.
No se trata de memorizar definiciones. Se trata de pensar en estructuras, no en sintaxis.
En esta primera parte de nuestra serie, vamos a dominar las cinco estructuras que aparecen una y otra vez en entrevistas técnicas — con ejemplos prácticos y las preguntas típicas que te van a hacer.
1. Array — El Fundamento de Todo
Un array es un bloque continuo de memoria que almacena elementos del mismo tipo. Cada elemento tiene un índice que permite acceso directo en tiempo constante.
¿Por qué es tan rápido?
La magia está en la fórmula:
Dirección = Dirección Base + (Índice × Tamaño del Elemento)
No hay que recorrer nada. Se calcula la posición exacta en memoria instantáneamente.
Cuándo usarlo
- Necesitas acceso instantáneo por índice
- El tamaño de tu colección es fijo o cambia poco
- La localidad de memoria importa (iteraciones frecuentes)
Complejidad
| Operación | Tiempo |
|---|---|
| Acceso por índice | O(1) |
| Búsqueda | O(n) |
| Inserción al final | O(1)* |
| Inserción en medio | O(n) |
| Eliminación | O(n) |
*O(1) amortizado si hay capacidad; O(n) si requiere redimensionar.
Pregunta típica de entrevista
"Dado un array de enteros y un target, encuentra dos números que sumen el target."
Tip: La solución óptima no usa arrays solos — usa un HashMap. Esto nos lleva a...
2. HashMap — Tu Mejor Amigo en Entrevistas
Un HashMap almacena pares clave-valor usando una función hash. Transforma cualquier clave en un índice de array interno, dando acceso promedio en O(1).
Cómo funciona internamente
- La clave pasa por una función hash
- El hash se convierte en un índice del array interno
- Si dos claves generan el mismo índice (colisión), se encadenan en una lista
// Estructura conceptual
"María" → hash("María") → índice 3 → [("María", 28)]
"Pedro" → hash("Pedro") → índice 7 → [("Pedro", 34)]
"Ana" → hash("Ana") → índice 3 → [("María", 28), ("Ana", 25)] // colisión
Cuándo usarlo
- Necesitas búsquedas rápidas por clave
- Estás contando frecuencias de elementos
- Necesitas detectar duplicados
- Quieres mapear relaciones (usuario → datos, producto → precio)
Complejidad
| Operación | Promedio | Peor caso |
|---|---|---|
| Búsqueda | O(1) | O(n) |
| Inserción | O(1) | O(n) |
| Eliminación | O(1) | O(n) |
El peor caso ocurre con muchas colisiones (mala función hash o datos adversarios).
Pregunta típica de entrevista
"Encuentra el primer carácter no repetido en un string."
Solución: Un HashMap para contar frecuencias, luego un segundo recorrido para encontrar el primero con cuenta = 1.
3. Stack — LIFO y Por Qué Importa
Un Stack (pila) opera bajo el principio LIFO: Last In, First Out. El último elemento que entra es el primero que sale.
Piensa en una pila de platos: solo puedes tomar el de arriba.
Operaciones fundamentales
push(4) → [4]
push(11) → [4, 11]
push(6) → [4, 11, 6]
peek() → 6 (solo mira, no remueve)
pop() → [4, 11] (remueve el 6)
Cuándo usarlo
- Necesitas orden LIFO
- Implementas funcionalidad de "deshacer/rehacer"
- Parseas expresiones (paréntesis balanceados, notación postfix)
- Manejas llamadas recursivas (el call stack del sistema es literalmente un stack)
Complejidad
| Operación | Tiempo |
|---|---|
| push | O(1) |
| pop | O(1) |
| peek | O(1) |
| búsqueda | O(n) |
Pregunta típica de entrevista
"Dado un string con paréntesis, corchetes y llaves, determina si está balanceado."
Estrategia: Push en cada apertura, pop y comparar en cada cierre. Si el stack queda vacío al final y todos los cierres matchearon, está balanceado.
4. Queue — FIFO para BFS y Procesamiento
Una Queue (cola) opera bajo el principio FIFO: First In, First Out. El primer elemento que entra es el primero que sale.
Piensa en una fila de banco: el primero en llegar es el primero en ser atendido.
Operaciones fundamentales
enqueue(7) → [7]
enqueue(3) → [7, 3]
dequeue() → [3] (sale el 7)
enqueue(8) → [3, 8]
front() → 3 (próximo en salir)
Cuándo usarlo
- Procesamiento en orden de llegada
- BFS (Breadth-First Search) en grafos y árboles
- Sistemas de colas de tareas y mensajes
- Buffers de datos (streaming, I/O)
Complejidad
| Operación | Tiempo |
|---|---|
| enqueue | O(1) |
| dequeue | O(1) |
| front | O(1) |
| búsqueda | O(n) |
Pregunta típica de entrevista
"Dado un árbol binario, retorna sus valores nivel por nivel."
Estrategia: BFS con una queue. Encolas la raíz, y en cada iteración procesas todos los nodos del nivel actual mientras encolas sus hijos.
5. Linked List — Flexibilidad vs. Arrays
Una Linked List (lista enlazada) almacena elementos en nodos dispersos en memoria, conectados mediante punteros.
Estructura de un nodo
class Node {
int data;
Node next;
Node(int data) {
this.data = data;
this.next = null;
}
}
Tipos principales
- Singly Linked List: Cada nodo apunta solo al siguiente
- Doubly Linked List: Cada nodo apunta al anterior y al siguiente
- Circular: El último nodo apunta de vuelta al primero
Cuándo usarlo
- Inserciones/eliminaciones frecuentes al inicio o en medio
- No sabes el tamaño final de antemano
- Implementas stacks, queues, o caches LRU
- La memoria está fragmentada
Complejidad
| Operación | Tiempo |
|---|---|
| Acceso por índice | O(n) |
| Inserción al inicio | O(1) |
| Inserción al final | O(1)* |
| Eliminación (dado el nodo) | O(1) |
| Búsqueda | O(n) |
*O(1) si mantienes referencia al tail; O(n) si debes recorrer.
Pregunta típica de entrevista
"Detecta si una linked list tiene un ciclo."
Estrategia: Algoritmo de Floyd (tortuga y liebre). Dos punteros: uno avanza de a uno, otro de a dos. Si se encuentran, hay ciclo.
Comparativa Rápida
| Estructura | Mejor para | Evitar cuando |
|---|---|---|
| Array | Acceso por índice, iteración | Inserciones frecuentes en medio |
| HashMap | Búsqueda por clave, conteos | Necesitas orden |
| Stack | LIFO, parsing, recursión | Necesitas acceso aleatorio |
| Queue | FIFO, BFS, procesamiento | Necesitas acceso aleatorio |
| Linked List | Inserciones dinámicas | Acceso por índice frecuente |
Próximamente: Parte 2
En la segunda parte cubriremos las estructuras que te hacen destacar en entrevistas senior:
- Trees — La base de la jerarquía
- Binary Search Tree — Búsqueda ordenada
- Heaps — Priority queues y Top-K
- Graphs — Modelando relaciones complejas
¿Cuál de estas estructuras te ha dado más problemas en entrevistas? Comparte tu experiencia en los comentarios.
Este artículo es parte de la serie "Estructuras de Datos para Entrevistas Técnicas" en yoDEV. Síguenos para no perderte la próxima entrega.
Top comments (0)