Universidad de Cuenca
Facultad de Ingeniería
Escuela de Ingeniería de Sistemas
Programación III
Tema: Tablas de Dispersión
Por: Jonnathan Peñaranda
CONTENIDO
• Tablas de dispersión.
• Funciones de dispersión.
• Colisiones y resolución de colisiones.
• Problema planteado.
• Conclusión.
TABLAS DE DISPERSIÓN (TABLAS HASH)
Son estructuras
de datos
Se usan en
secuencia de
elementos
Valor clave
Complejidad constante: O(1)
Su finalidad
Inserción
Búsqueda
Eliminación
• La tabla de dispersión es un vector de tamaño fijo m,
• Contiene las claves de los elementos,
• Consta de una función hash, que transforma el campo clave elegido,
en un valor entero dentro del rango del vector.
pos Elemento
0
1
2
4
.
m-2
m-1
FUNCION_HASH( clave)
Elemento 1
Elemento 2
Elemento 3
clave1
clave2
clave3
Elemento 1
Elemento 2
Elemento 3
IMPLEMENTACIÓN EN JAVA
FUNCIONES DE DISPERSIÓN
Convierte el dato considerado
campo clave en un índice dentro
del rango de definición del vector.
Lo ideal es
determinar
posición en un
almacenamiento
secuencial sin
desperdiciar
mucho espacio.
FUNCIONES DE DISPERSIÓN
tamTabla = m
Hash(x): [0,m-1]
String clave = “a01”;
int clave = ASCII(a)
+ ASCII(0)
+ ASCII(1);
CRITERIOS PARA SELECCIONAR UNA FUNCIÓN.
• Fácil de evaluar y complejidad O(1)
• h(x) debe distribuir uniformemente las posiciones de los elementos
sobre el conjunto de direcciones de memoria , de modo que minimice
el numero de colisiones
• Preparar siempre resolución de colisiones para cuando éstas se
produzcan.
TIPOS DE FUNCIONES HASH
• Aritmética modular.
• Plegamiento.
• Mitad del cuadrado.
• Método de la multiplicación
ARITMÉTICA MODULAR
• La función hash mas simple
utiliza el operador.
• Genera valores calculando el
resto de la división entera entre
la clave x y el tamaño de la tabla
m.
h(x)= x % m
• Implementación en Java
Ejemplo:
m= 1000
Elm1 = 245643
Elm2 = 245221
Elm3 = 257135
PLEGAMIENTO
• Clave demasiado grande.
• Consiste en partir la clave x en
varias partes ()
h(x) = x1 + x2 + x3 + x4 + ……..+ xr;
h)x) = valor entero ;
• Implementación en Java
Ejemplo:
m= 1000
Elm1 = 245643
Elm2 = 245221
Elm3 = 257135
MITAD DEL CUADRADO
tamTabla = 51;
clave = 45;
clave^2 = 2025;
2 0 2 5
h(x) = 25;
• Implementación en Java
Ejemplo:
m= 1000
Elm1 = 245643
Elm2 = 245221
Elm3 = 257135
MÉTODO DE LA MULTIPLICACIÓN
• La dispersión genera direcciones
en tres pasos:
1. A*clave (0 < A < 1).
2. d = A*x – ParteEntera(A*x).
3. h(x) = ParteEntera(m*d).
• Implementación en Java
Donald E. Knuth sugiere que A ≈ ( √ 5 − 1)/2 = 0.61680339887...
Ejemplo:
m= 1000
Elm1 = 245643
Elm2 = 245221
Elm3 = 257135
OPERACIONES DE LAS TABLAS DE DISPERSIÓN
Además
• Dos claves diferentes, c1 y c2, den la misma dirección, h1(c1) =
h2(c2). Se produce una colisión.
• Direccionamiento hash implica: la elección de la función hash y
resolución de colisiones.
COLISIONES Y RESOLUCIÓN DE COLISIONES
pos Elemento
0
1
2
4
.
m-2
m-1
FUNCION_HASH (clave)
Elemento 1
Elemento 2
clave1
clave2
Elemento1 Elemento 2
COLISIÓN
MODELOS PARA RESOLVER COLISIONES.
• La exploración de direcciones
• Exploración lineal
• Exploración cuadrática
• Direccionamiento enlazado.
EXPLORACIÓN DE DIRECCIONES.
• Las colisiones se resuelven explorando consecutivamente en una
secuencia de direcciones hasta que se encuentra una posición
libre(hueco).
• Importante, inicializar todas las posiciones de la tabla con un valor
que indique vacío. Por ejemplo null.
• Al insertar un elemento, si se produce una colisión, la secuencia de
exploración termina cuando se encuentra una dirección vacía.
EXPLORACIÓN LINEAL
• Forma mas simple y primitiva de resolver una colisión entre claves.
• La forma de resolver la colisión consiste en buscar la primera posición
disponible que siga a la posición que retorna la función hash.
pos Elemento
0
1 OCUPADO
2 OCUPADO
4
. OCUPADO
m-2
m-1
FUNCION_HASH (Elemento)
Elemento
EXP_LINEAL( pos)
¿Está ocupado?
SI
EXPLORACIÓN LINEAL
• Forma mas simple y primitiva de resolver una colisión entre claves.
• La forma de resolver la colisión consiste en buscar la primera posición
disponible que siga a la posición que retorna la función hash.
pos Elemento
0
1 OCUPADO
2 OCUPADO
4
. OCUPADO
m-2
m-1
FUNCION_HASH (Elemento)
Elemento
EXP_LINEAL( pos)
¿Está ocupado?
SI
EXPLORACIÓN LINEAL
• Forma mas simple y primitiva de resolver una colisión entre claves.
• La forma de resolver la colisión consiste en buscar la primera posición
disponible que siga a la posición que retorna la función hash.
pos Elemento
0
1 OCUPADO
2 OCUPADO
4
. OCUPADO
m-2
m-1
FUNCION_HASH (Elemento)
EXP_LINEAL( pos)
¿Está ocupado?
NO
Elemento
Elemento
IMPLEMENTACIÓN EN JAVA
EXPLORACIÓN CUADRÁTICA
FUNCION_HASH (clave)
EXP_CUADRATICA( POS)
¿Está ocupado?
SI
ELEMENTO
POS ELEMENTOS
0 OCUPADO
1 OCUPADO
2
3 OCUPADO
4 OCUPADO
5
6 OCUPADO
7
8
9
10 OCUPADO
p
clave
EXPLORACIÓN CUADRÁTICA
FUNCION_HASH (clave)
EXP_CUADRATICA( POS)
¿Está ocupado?
SI
ELEMENTO
POS ELEMENTOS
0 OCUPADO
1 OCUPADO
2
3 OCUPADO
4 OCUPADO
5
6 OCUPADO
7
8
9
10 OCUPADO
clave
p+1
p
EXPLORACIÓN CUADRÁTICA
FUNCION_HASH (clave) EXP_CUADRATICA( POS)
¿Está ocupado?
SI
ELEMENTO
POS ELEMENTOS
0 OCUPADO
1 OCUPADO
2
3 OCUPADO
4 OCUPADO
5
6 OCUPADO
7
8
9
10 OCUPADO
p+4
clave
p+1
p
EXPLORACIÓN CUADRÁTICA
FUNCION_HASH (clave)
EXP_CUADRATICA( POS)
¿Está ocupado?
NO
ELEMENTO
POS ELEMENTOS
0 OCUPADO
1 OCUPADO
2
3 OCUPADO
4 OCUPADO
5
6 OCUPADO
7
8
9
10 OCUPADO
p+9
clave
ELEMENTO
Recorrido
p + i^2
i = 0, 1, 2, …
p+4
p+1
p
IMPLEMENTACIÓN EN JAVA
DIRECCIONAMIENTO ENLAZADO.
• Se basa en utilizar listas enlazadas, de tal forma que en cada lista se
colocan los elementos que tienen la misma dirección hash.
• Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a
estar ubicados en la misma lista enlazada.
pos Elemento *
0
1
2
4
.
11
12
FUNCION_HASH (clave)
Elemento 1
clave
Elemento 2
DIRECCIONAMIENTO ENLAZADO.
• Se basa en utilizar listas enlazadas, de tal forma que en cada lista se
colocan los elementos que tienen la misma dirección hash.
• Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a
estar ubicados en la misma lista enlazada.
pos Elemento *
0
1
2
4
.
11
12
FUNCION_HASH (clave)
Elemento 1
clave
clave
null
Elemento 2
Elemento 1
DIRECCIONAMIENTO ENLAZADO.
• Se basa en utilizar listas enlazadas, de tal forma que en cada lista se
colocan los elementos que tienen la misma dirección hash.
• Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a
estar ubicados en la misma lista enlazada.
pos Elemento *
0
1
2
4
.
11
12
FUNCION_HASH (clave)
Elemento 1
clave
Elemento 2 nullnull
Elemento 2
TABLAS DE DISPERSIÓN ENLAZADAS EN JAVA
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
INSERTAR
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
INSERTAR
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
BUSCAR
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
BUSCAR
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
ELIMINAR
OPERACIONES DE TABLAS DE DISPERSIÓN ENLAZADAS
ELIMINAR
PROBLEMA.
PROBLEMA.
PROBLEMA.
PROBLEMA.
PROBLEMA.
PROBLEMA.
PROBLEMA.
PROBLEMA.
CONCLUSIÓN.
• tamTabla = numero_primo mayor, aunque cercano al numero de
elementos que se tiene previsto almacenar en la tabla.
• Para resolver una colisión, lo mejor seria que se utilizara el
direccionamiento enlazado, y de este modo el tamaño de la tabla
sería irrelevante puesto que la estructura podrá almacenar los
elementos de forma dinámica.
REFERENCIA.
• Joyanes Aguilar, L., & Zohonero Martínez, I. (2008).
Estructura de datos en Java. McGraw-Hill España.

Programación 3: tablas de dispersión

  • 1.
    Universidad de Cuenca Facultadde Ingeniería Escuela de Ingeniería de Sistemas Programación III Tema: Tablas de Dispersión Por: Jonnathan Peñaranda
  • 2.
    CONTENIDO • Tablas dedispersión. • Funciones de dispersión. • Colisiones y resolución de colisiones. • Problema planteado. • Conclusión.
  • 3.
    TABLAS DE DISPERSIÓN(TABLAS HASH) Son estructuras de datos Se usan en secuencia de elementos Valor clave Complejidad constante: O(1) Su finalidad Inserción Búsqueda Eliminación
  • 4.
    • La tablade dispersión es un vector de tamaño fijo m, • Contiene las claves de los elementos, • Consta de una función hash, que transforma el campo clave elegido, en un valor entero dentro del rango del vector. pos Elemento 0 1 2 4 . m-2 m-1 FUNCION_HASH( clave) Elemento 1 Elemento 2 Elemento 3 clave1 clave2 clave3 Elemento 1 Elemento 2 Elemento 3
  • 5.
  • 6.
    FUNCIONES DE DISPERSIÓN Convierteel dato considerado campo clave en un índice dentro del rango de definición del vector. Lo ideal es determinar posición en un almacenamiento secuencial sin desperdiciar mucho espacio.
  • 7.
    FUNCIONES DE DISPERSIÓN tamTabla= m Hash(x): [0,m-1] String clave = “a01”; int clave = ASCII(a) + ASCII(0) + ASCII(1);
  • 8.
    CRITERIOS PARA SELECCIONARUNA FUNCIÓN. • Fácil de evaluar y complejidad O(1) • h(x) debe distribuir uniformemente las posiciones de los elementos sobre el conjunto de direcciones de memoria , de modo que minimice el numero de colisiones • Preparar siempre resolución de colisiones para cuando éstas se produzcan.
  • 9.
    TIPOS DE FUNCIONESHASH • Aritmética modular. • Plegamiento. • Mitad del cuadrado. • Método de la multiplicación
  • 10.
    ARITMÉTICA MODULAR • Lafunción hash mas simple utiliza el operador. • Genera valores calculando el resto de la división entera entre la clave x y el tamaño de la tabla m. h(x)= x % m • Implementación en Java
  • 11.
    Ejemplo: m= 1000 Elm1 =245643 Elm2 = 245221 Elm3 = 257135
  • 12.
    PLEGAMIENTO • Clave demasiadogrande. • Consiste en partir la clave x en varias partes () h(x) = x1 + x2 + x3 + x4 + ……..+ xr; h)x) = valor entero ; • Implementación en Java
  • 13.
    Ejemplo: m= 1000 Elm1 =245643 Elm2 = 245221 Elm3 = 257135
  • 14.
    MITAD DEL CUADRADO tamTabla= 51; clave = 45; clave^2 = 2025; 2 0 2 5 h(x) = 25; • Implementación en Java
  • 15.
    Ejemplo: m= 1000 Elm1 =245643 Elm2 = 245221 Elm3 = 257135
  • 16.
    MÉTODO DE LAMULTIPLICACIÓN • La dispersión genera direcciones en tres pasos: 1. A*clave (0 < A < 1). 2. d = A*x – ParteEntera(A*x). 3. h(x) = ParteEntera(m*d). • Implementación en Java Donald E. Knuth sugiere que A ≈ ( √ 5 − 1)/2 = 0.61680339887...
  • 17.
    Ejemplo: m= 1000 Elm1 =245643 Elm2 = 245221 Elm3 = 257135
  • 18.
    OPERACIONES DE LASTABLAS DE DISPERSIÓN
  • 19.
    Además • Dos clavesdiferentes, c1 y c2, den la misma dirección, h1(c1) = h2(c2). Se produce una colisión. • Direccionamiento hash implica: la elección de la función hash y resolución de colisiones.
  • 20.
    COLISIONES Y RESOLUCIÓNDE COLISIONES pos Elemento 0 1 2 4 . m-2 m-1 FUNCION_HASH (clave) Elemento 1 Elemento 2 clave1 clave2 Elemento1 Elemento 2 COLISIÓN
  • 21.
    MODELOS PARA RESOLVERCOLISIONES. • La exploración de direcciones • Exploración lineal • Exploración cuadrática • Direccionamiento enlazado.
  • 22.
    EXPLORACIÓN DE DIRECCIONES. •Las colisiones se resuelven explorando consecutivamente en una secuencia de direcciones hasta que se encuentra una posición libre(hueco). • Importante, inicializar todas las posiciones de la tabla con un valor que indique vacío. Por ejemplo null. • Al insertar un elemento, si se produce una colisión, la secuencia de exploración termina cuando se encuentra una dirección vacía.
  • 23.
    EXPLORACIÓN LINEAL • Formamas simple y primitiva de resolver una colisión entre claves. • La forma de resolver la colisión consiste en buscar la primera posición disponible que siga a la posición que retorna la función hash. pos Elemento 0 1 OCUPADO 2 OCUPADO 4 . OCUPADO m-2 m-1 FUNCION_HASH (Elemento) Elemento EXP_LINEAL( pos) ¿Está ocupado? SI
  • 24.
    EXPLORACIÓN LINEAL • Formamas simple y primitiva de resolver una colisión entre claves. • La forma de resolver la colisión consiste en buscar la primera posición disponible que siga a la posición que retorna la función hash. pos Elemento 0 1 OCUPADO 2 OCUPADO 4 . OCUPADO m-2 m-1 FUNCION_HASH (Elemento) Elemento EXP_LINEAL( pos) ¿Está ocupado? SI
  • 25.
    EXPLORACIÓN LINEAL • Formamas simple y primitiva de resolver una colisión entre claves. • La forma de resolver la colisión consiste en buscar la primera posición disponible que siga a la posición que retorna la función hash. pos Elemento 0 1 OCUPADO 2 OCUPADO 4 . OCUPADO m-2 m-1 FUNCION_HASH (Elemento) EXP_LINEAL( pos) ¿Está ocupado? NO Elemento Elemento
  • 26.
  • 27.
    EXPLORACIÓN CUADRÁTICA FUNCION_HASH (clave) EXP_CUADRATICA(POS) ¿Está ocupado? SI ELEMENTO POS ELEMENTOS 0 OCUPADO 1 OCUPADO 2 3 OCUPADO 4 OCUPADO 5 6 OCUPADO 7 8 9 10 OCUPADO p clave
  • 28.
    EXPLORACIÓN CUADRÁTICA FUNCION_HASH (clave) EXP_CUADRATICA(POS) ¿Está ocupado? SI ELEMENTO POS ELEMENTOS 0 OCUPADO 1 OCUPADO 2 3 OCUPADO 4 OCUPADO 5 6 OCUPADO 7 8 9 10 OCUPADO clave p+1 p
  • 29.
    EXPLORACIÓN CUADRÁTICA FUNCION_HASH (clave)EXP_CUADRATICA( POS) ¿Está ocupado? SI ELEMENTO POS ELEMENTOS 0 OCUPADO 1 OCUPADO 2 3 OCUPADO 4 OCUPADO 5 6 OCUPADO 7 8 9 10 OCUPADO p+4 clave p+1 p
  • 30.
    EXPLORACIÓN CUADRÁTICA FUNCION_HASH (clave) EXP_CUADRATICA(POS) ¿Está ocupado? NO ELEMENTO POS ELEMENTOS 0 OCUPADO 1 OCUPADO 2 3 OCUPADO 4 OCUPADO 5 6 OCUPADO 7 8 9 10 OCUPADO p+9 clave ELEMENTO Recorrido p + i^2 i = 0, 1, 2, … p+4 p+1 p
  • 31.
  • 32.
    DIRECCIONAMIENTO ENLAZADO. • Sebasa en utilizar listas enlazadas, de tal forma que en cada lista se colocan los elementos que tienen la misma dirección hash. • Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a estar ubicados en la misma lista enlazada. pos Elemento * 0 1 2 4 . 11 12 FUNCION_HASH (clave) Elemento 1 clave Elemento 2
  • 33.
    DIRECCIONAMIENTO ENLAZADO. • Sebasa en utilizar listas enlazadas, de tal forma que en cada lista se colocan los elementos que tienen la misma dirección hash. • Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a estar ubicados en la misma lista enlazada. pos Elemento * 0 1 2 4 . 11 12 FUNCION_HASH (clave) Elemento 1 clave clave null Elemento 2 Elemento 1
  • 34.
    DIRECCIONAMIENTO ENLAZADO. • Sebasa en utilizar listas enlazadas, de tal forma que en cada lista se colocan los elementos que tienen la misma dirección hash. • Todos los elementos que colisionan: h(x1) = h(x2) = h(x3) … van a estar ubicados en la misma lista enlazada. pos Elemento * 0 1 2 4 . 11 12 FUNCION_HASH (clave) Elemento 1 clave Elemento 2 nullnull Elemento 2
  • 35.
    TABLAS DE DISPERSIÓNENLAZADAS EN JAVA
  • 36.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS INSERTAR
  • 37.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS INSERTAR
  • 38.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS BUSCAR
  • 39.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS BUSCAR
  • 40.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS ELIMINAR
  • 41.
    OPERACIONES DE TABLASDE DISPERSIÓN ENLAZADAS ELIMINAR
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
    CONCLUSIÓN. • tamTabla =numero_primo mayor, aunque cercano al numero de elementos que se tiene previsto almacenar en la tabla. • Para resolver una colisión, lo mejor seria que se utilizara el direccionamiento enlazado, y de este modo el tamaño de la tabla sería irrelevante puesto que la estructura podrá almacenar los elementos de forma dinámica.
  • 51.
    REFERENCIA. • Joyanes Aguilar,L., & Zohonero Martínez, I. (2008). Estructura de datos en Java. McGraw-Hill España.

Notas del editor

  • #11 Normalment la clave asociada con un elementos es de tipo entero. Si no es entero hay que trnasformarlo en un valor entero Con el fin de que la función disperse lo mas uniformemente
  • #12 Se recomienda que el tamaño de la tabla sea los números primos mayores, aunque cercano al numero de elementos que se tiene previsto almacenar en la tabla.
  • #13 Pudiendo ocurrir que no pueda ser almacenado en memoria De igual longitud que el tamanio de la tabla sin superar el numero de cifras significativas del tamaño de la tabla.
  • #15 La función eleva al cuadrado la clave y del resultado, se toman los dígitos de la mitad hacia la izquierda, sin superar el numero de cifras significativas del tamaño de la tabla.
  • #17 Antes de esto el algoritmo utiliza una constante real A entre 0 -1 Primero multiplica la clave por una constante real (A) entre 0 y 1 En segundo lugar, determina la parte decimal, d, del numero obtenido en la multiplicación del valor real por la clave. Por ultimo, multiplica el tamaño de la tabla, m, por LA PARTE DECIMAL DEL PRIMER PASO, y al truncarse el resultado se obtiene un numero entero en el rango DEL TAMANO DE LA TABLA. EN ESTA PARTE ESTA EL CODE IMPLEMENTADO EN JAVA, Y AUNQ este método funciona para cualquier valor de A, se ha encontrado que funciona mejor con el valor 0.618 Y MAS DESCIMALES0339887...
  • #18 LO UNICO Q CAMVIA EN EL CODE EL LA LLAMADA DEL METODO Y LOS VALORES DE RETORNO. COMO PODEMOS VER TODOS LOS METODOS GENERARON VALORES DISTINTOS PARA LAS MISMAS CLAVES.
  • #19 1 RECIVE COMO PARAMETRO EL ELEMENTO Y LA POSICION Y LUEGO ASIGNA EL ELEMENTO EN L
  • #20 Es posible que según la función hash elegida, que dos claves diferentes, c1 y c2, den la misma dirección, h1(c1) = h2(c2). Se produce el fenómeno de colisión. Se debe usar un método para resolver la colisión. Por tanto el estudio de direccionamiento hash implica: la elección de la función hash y LA resolución de colisiones.
  • #21 COMO AVIA DICHO La función de dispersión elegida h(x) puede generar la misma posición al aplicarla a las claves de dos o mas registros diferentes. Si esto ocurre se produce una colisión. Lo ideal seria que h(x) genere direcciones distintas para dos claves distintas. (no siempre es así).
  • #24 1 al aplicar una función de dispersión. Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada El recorrido de las posiciones seria: La tabla se ha de considerar circular, de tal forma que al llegar a la ultima posición, la siguiente es la posición 0. Y FINALIZARA CUANDO ENCUENTRE UN UGAR VACIO
  • #25 1 al aplicar una función de dispersión. Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada El recorrido de las posiciones seria: La tabla se ha de considerar circular, de tal forma que al llegar a la ultima posición, la siguiente es la posición 0.
  • #26 1 al aplicar una función de dispersión. Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada El recorrido de las posiciones seria: La tabla se ha de considerar circular, de tal forma que al llegar a la ultima posición, la siguiente es la posición 0.
  • #28 Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada Este método busca en las direcciones p, p+1, p+4, p+9, . . . p+i^2 para valores de i = 1, 2, 3 …
  • #29 Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada Este método busca en las direcciones p, p+1, p+4, p+9, . . . p+i^2 para valores de i = 1, 2, 3 …
  • #30 Suponiendo que un elemento tiene una clave x, y la dirección que devuelve h(x) = p. y que esta posición ya este ocupada Este método busca en las direcciones p, p+1, p+4, p+9, . . . p+i^2 para valores de i = 1, 2, 3 …
  • #31 ESTE METODO ES MUY SIMILAR AL ANTERIOR, LO UNICO QUE CAMBIA COMO VEMOSS EN LA ANIMACION, ES EL RECORRIDO DE LA TALBA; Y DE IGUAL MANERA TERMINARA LA EXPLORACION CUNADO ENCUENTRE UN LUGAR VACIO. POR LO TANTO EL RECORRIDO ESTARIA DADO POR LA SIGUITE FORMULA, DONDE P SERIA LA POSICION DE RETORNO DE LA FUNCION HASH Y EL INDICE I SERIA LOS VALORES ENTEROS DENTRO DEL RANFGO DEL TAMANIO DE LA TABLA.
  • #36 Cuando se desea implementar el direccionamiento enalzado para solu ionar las coliciones, La estructura de la tabla se debe implementear de la siguiente forma. Lo único que cambia respecto a una tabla normal es que en cada posición de la tabla se encuentra un enlaze hacia el siguiente elemnto que colicione.
  • #37 las operaciones de Insertar, Buscar, y Eliminar se lo realizaría sobre listas enlazadas.
  • #38 las operaciones de Insertar, Buscar, y Eliminar se lo realizaría sobre listas enlazadas.
  • #39 Ademas las operaciones de Insertar, Buscar, y Eliminar variarían un poco a las normales puesto que ahora se lo realizaría sobre listas enlazadas.
  • #40 las operaciones de Insertar, Buscar, y Eliminar se lo realizaría sobre listas enlazadas.
  • #41 las operaciones de Insertar, Buscar, y Eliminar se lo realizaría sobre listas enlazadas.
  • #42 las operaciones de Insertar, Buscar, y Eliminar se lo realizaría sobre listas enlazadas.
  • #51 YA QUE EN METODOS COMO LA ARITMETICA MODULAR AYUDARIA A REDUCIR EL NUMERO DE COLICIONES. ADEMAS PARA RESOLV