Modelo por capas
La tabla de costos completa
| Necesitas | Alternativa simple | Cuándo cambiar |
|---|---|---|
| secuencia, acceso por posición, añadir al final | array dinámico | — |
| sacar por los dos extremos | deque (buffer circular) | — |
| buscar por clave exacta | tabla hash | si hacen falta orden o rangos |
| orden, rangos, mínimo y máximo, con cambios | árbol balanceado o B-tree | si no hay cambios: array ordenado |
| orden y consultas, casi sin cambios | array ordenado | si hay cambios frecuentes |
| el siguiente más urgente | heap | si además hay que buscar o recorrer en orden |
| operar junto a nodos que ya tienes | lista doble | — |
| vecinos en un grafo grande | listas de adyacencia o CSR | grafo pequeño y denso: matriz |
Todo costo con su condición: el hash es O(1) esperado, el array dinámico agrega en O(1) amortizado, el árbol es O(log n) si está balanceado.