Saltar al contenido

Simulación

Encadenamiento

La forma más simple de manejar colisiones es el encadenamiento: cada cubeta guarda una lista con todas las claves que caen en ella.

  • insertar(k): calcular la cubeta y añadir k a su lista (si no está).
  • buscar(k): calcular la cubeta y recorrer solo su lista.

Con capacidad 4 y hash(k) = k, insertas 7, 11, 2 y 15.

Insertar 7, 11, 2 y 15 con encadenamientoCuatro pasos sobre una tabla de 4 cubetas con hash(k) = k. Paso 1: 7 va a la cubeta 3. Paso 2: 11 también cae en la 3 y se añade tras el 7. Paso 3: 2 va a la cubeta 2. Paso 4: 15 cae en la 3, que queda con 7, 11 y 15. Las cubetas 0 y 1 siguen vacías.Paso 1 de 4: insertar 77 mod 4 = 301237*Paso 2 de 4: insertar 1111 mod 4 = 3: ya hay una clave, colisión0123711*Paso 3 de 4: insertar 22 mod 4 = 20122*3711Paso 4 de 4: insertar 1515 mod 4 = 3: otra colisión0122371115*
La cubeta de destino lleva el borde grueso y la clave recién añadida el asterisco. La cubeta 3 acaba con una cadena de tres claves.
Una tabla con encadenamiento tiene capacidad 5 y hash(k) = k. Insertas 12, 7, 21, 2 y 17, y cada cubeta añade al final de su lista. ¿Cómo quedan las cubetas y cuántas claves compara buscar(17)?