Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Consiste en utilizar un vector en el que se pone una clave en cada una de sus
casillas. En este caso nos encontramos con el problema de que en el caso de
que se produzca una colisin no se pueden tener ambos elementos formando
parte de una lista para esa casilla. Para solucionar ese problema se usa lo que
se llama rehashing. El rehashing consiste en que una vez producida una colisin
al insertar un elemento se utiliza una funcin adicional para determinar cul ser
la casilla que le corresponde dentro de la tabla, a esta funcin la llamaremos
funcin de rehashing, rehi(k).
El resultado de aplicar este mtodo a nuestro ejemplo puede verse en las tablas
siguientes. En la primera se incluyen los valores de h para cada clave y en la
segunda pueden verse las localizaciones finales de las claves en la tabla, as
como las pruebas requeridas para su insercin.
Pseudocdigo
Mtodo BsquedaDobleDireccin(A,n,clave)
pos H(clave) //Genera direccin
Si (A[pos]=clave) entonces
retorna pos //valor hallado en pos
sino
posSgte H2(pos) //Genera direccin con
segunda funcin Hash
Mientras(posSgte<=n-1) y
(A[posSgte]vaco) y (A[posSgte]clave)
y (posposSgte) hacer
posSgte H2(posSigte)
Fin Mientras
Si (A[posSgte]=vaco) o
(A[posSgte]clave)entonces
Retornar -1 //valor no encontrado
sino
Retornar posSigte //valor hallado en
posSigte
Fin Si
Fin Mtodo