Conceptos y Construcción de Hash Tables en JavaScript
Clase 10 de 29 • Curso de Estructuras de Datos con JavaScript
Contenido del curso
Arrays y strings
- 4

Cómo funcionan arrays en memoria de JavaScript
07:23 min - 5

Construcción de Arrays con Clases en JavaScript
09:33 min - 6

Métodos pop y delete en arrays
16:01 min - 7
Playground: crea tu propia implementación de unshift
- 8
Playground: crea tu propia implementación de shift
- 9

Inmutabilidad de Strings y Almacenamiento en Memoria
02:42 min
Hash Table
Linked List
- 15

Estructuras de Datos: Listas Enlazadas en JavaScript
05:20 min - 16

Estructura y Creación de una Lista Enlazada Simple en JavaScript
10:03 min - 17

Métodos para Manipular Nodos en Listas Enlazadas
12:12 min - 18

Inserta nodos intermedios sin romper enlaces en JavaScript
16:08 min - 19

Doubly Linked List con punteros bidireccionales
07:51 min
Stacks
Queues
Trees
Graphs
Cierre
Aprende cómo una hash table acelera búsquedas y actualizaciones gracias al modelo key–value y a una hash function que genera un address para guardar en buckets. Verás cómo se compara con objetos y arrays en JavaScript, los métodos esenciales (insert, buscar y delete) y qué hacer ante una colisión.
¿Qué es una hash table y en qué se diferencia de un objeto?
Una estructura de datos tipo hash table también usa pares key–value, igual que un objeto. La diferencia clave es un paso extra: una hash function que actúa como “caja negra”. Esta función convierte el key en un número (un hash) y ese número se usa como address para guardar el value en un bucket. Así, acceder al dato es directo y muy rápido.
¿Cómo se nombra en JavaScript, Python y Ruby?
- JavaScript: objetos o maps. Son similares; falta el paso de hash function.
- Python: diccionarios.
- Ruby: hashers.
¿Cuál es la diferencia clave con un objeto?
- La hash table añade la hash function que calcula el address del bucket.
- En objetos accedes por key sin ese paso intermedio.
- Este paso extra permite búsquedas muy rápidas y consistentes.
¿Cómo funciona la hash function para guardar y acceder?
El flujo es simple: tomas el key, lo pasas por la hash function, recibes siempre el mismo hash para ese key y ese hash apunta al bucket donde se guarda el value. Para leer, repites el proceso con el mismo key y obtienes el valor asociado. Esta operación se siente como acceder por índice en un array.
¿Por qué es tan rápida la búsqueda?
- El hash funciona como un índice de array.
- Accedes directo al bucket correcto.
- Evitas recorrer elementos uno a uno.
¿Qué papel cumplen los buckets?
- Son las “celdas” donde viven los pares key–value.
- El hash determina qué bucket usar.
- Permiten guardar y recuperar sin búsquedas lineales.
¿Qué métodos y retos clave debes conocer?
Para manipular una hash table se usan métodos que marcan la pauta de una implementación básica en clase:
¿Qué métodos esenciales existen?
- insert: agrega elementos a la hash table.
- buscar: recibe un key y regresa su valor rápidamente.
- delete: elimina elementos existentes.
¿Qué es una colisión y cómo tratarla?
- Una colisión ocurre cuando dos keys distintos producen el mismo hash y caen en el mismo bucket.
- Es normal que suceda; no se puede evitar por completo.
- Se puede tratar encadenando elementos en ese bucket con una linked list.
- Al consultar por un key (p. ej., “cerezas”), se regresa el valor correcto incluso si comparte bucket con otro key (p. ej., “mandarinas”).
¿Te gustaría que profundicemos en la implementación con métodos como insert, buscar y delete, o en el manejo de colisiones con linked list? Comparte tus dudas y casos en los comentarios.