TABLAS HASH MODULO II. ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN. Lucía Álvarez López. Grupo L.
¿Podemos utilizar Object para los elementos de la tabla hash? La clave es una cadena => interfaz Almacenable con un método getClave que devuelve un String.  Para implementar esto: public interface Almacenable{ public String getClave(); } class Mercancia implements Comparable, Almacenable{ ... public String getClave(){ return ""+getCodigo(); } }
Función matemática para transformar la clave en un índice numérico para el array. Como función matemática usamos la función de dispersión. Regla de Horner: l 0 *32^(n-1)+l 1 *32^(n-2)+l 2 *32^(n-3)+...+l n-2 *32^1+l n-1 *32^0 donde n es el tamaño de la clave ejemplo: &quot;AVION&quot; 'A'*32^4+'V'*32^3+'I'*32^2+'O‘*32+'N' private int funcionDispersion(String clave){   int posicion = 0;   for(int i = 0; i < clave.length(); i++)   posicion = (32*posicion + clave.charAt(i))%B;   return posicion; }

Tablas Hash (Lucía Álvarez López)

  • 1.
    TABLAS HASH MODULOII. ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN. Lucía Álvarez López. Grupo L.
  • 2.
    ¿Podemos utilizar Objectpara los elementos de la tabla hash? La clave es una cadena => interfaz Almacenable con un método getClave que devuelve un String. Para implementar esto: public interface Almacenable{ public String getClave(); } class Mercancia implements Comparable, Almacenable{ ... public String getClave(){ return &quot;&quot;+getCodigo(); } }
  • 3.
    Función matemática paratransformar la clave en un índice numérico para el array. Como función matemática usamos la función de dispersión. Regla de Horner: l 0 *32^(n-1)+l 1 *32^(n-2)+l 2 *32^(n-3)+...+l n-2 *32^1+l n-1 *32^0 donde n es el tamaño de la clave ejemplo: &quot;AVION&quot; 'A'*32^4+'V'*32^3+'I'*32^2+'O‘*32+'N' private int funcionDispersion(String clave){ int posicion = 0; for(int i = 0; i < clave.length(); i++) posicion = (32*posicion + clave.charAt(i))%B; return posicion; }