Red de conocimientos sobre prescripción popular - Enciclopedia de Medicina Tradicional China - Suponga que la función hash es h(k)=k mod 7 y resuelva las colisiones mediante exploración lineal. Ahora comience desde la tabla hash vacía e inserte los códigos clave 23, 14, 9, 6, 30, 12, 18 en secuencia.

Suponga que la función hash es h(k)=k mod 7 y resuelva las colisiones mediante exploración lineal. Ahora comience desde la tabla hash vacía e inserte los códigos clave 23, 14, 9, 6, 30, 12, 18 en secuencia.

Una función hash es un método para asignar datos de entrada a ubicaciones en una tabla hash. En este problema, la función hash h(k)=k mod 7 toma el resto de la clave de entrada K y la asigna a una posición entre 0 y 6.

La exploración lineal es una forma de resolver el problema de la colisión de hash. Se produce un conflicto cuando dos claves diferentes se asignan a la misma ubicación. Para resolver la colisión, necesitamos encontrar la siguiente posición disponible en la tabla hash. El método de exploración lineal resuelve las colisiones comprobando la siguiente posición en secuencia hasta encontrar una posición libre.

Comencemos con una tabla hash vacía. Supongamos que queremos insertar los siguientes pares clave-valor: {12, 18, 27, 8, 41, 36, 45}.

Insertamos el primer par clave-valor 12 en la tabla hash. Como h(12)=5, insertamos 12 en la posición 5.

A continuación, insertamos 18. Como h(18)=4, la posición 4 ya está ocupada. Según el método de prospección lineal, debemos verificar la siguiente ubicación en secuencia. H(18)+1=5 también está ocupado, así que continúa verificando la siguiente posición, h(18)+2=6 está libre, por lo que insertamos 18 en la posición 6.

Entonces 27. Como h(27)=6, la posición 6 ya está ocupada. Continúe comprobando la siguiente ubicación. H(27)+1=0 es libre, por lo que insertamos 27 en la posición 0.

El siguiente es el 8. Como h(8)=1, la posición 1 ya está ocupada, así que continúe comprobando la siguiente posición. H(8)+1=2 también está ocupado. Continúe comprobando la siguiente ubicación. H(8)+2=3 es libre, por lo que insertamos 8 en la posición 3.

Entonces 41. Como h(41)=6, la posición 6 ya está ocupada. Continúe comprobando la siguiente ubicación. H(41)+1=0 también está ocupado. Continúe comprobando la siguiente ubicación. H(41)+2=1 también está ocupado. Continúe comprobando la siguiente ubicación. H(41)+3=2 también está ocupado. Continúe comprobando la siguiente ubicación. H(41)+4=3 también está ocupada y la última posición h(41)+5=4 está libre, por lo que insertamos 41 en la posición 4.

Entonces 36. Como h(36)=1, la posición 1 ya está ocupada, así que continúe comprobando la siguiente posición. H(36)+1=2 también está ocupado. Continúe comprobando la siguiente ubicación. H(36)+2=3 también está ocupado. Continúe comprobando la siguiente ubicación. H(36)+3=4 también está ocupado. Continúe comprobando la siguiente ubicación. H(36)+4=5 también está ocupado. Continúe comprobando la siguiente ubicación. H (36) +5 = 6 también está ocupada y la última posición h (36) +6 = 0 está libre, por lo que insertamos 36 en la posición 0.

El último es el 45. Como h(45)=3, la posición 3 ya está ocupada. Continúe comprobando la siguiente ubicación. H(45)+1=4 también está ocupado. Continúe comprobando la siguiente ubicación. H(45)+2=5 también está ocupado. Continúe comprobando la siguiente ubicación. H(45)+3=6 también está ocupado. Continúe comprobando la siguiente ubicación. H(45)+4=0 también está ocupado. Continúe comprobando la siguiente ubicación. H(45)+5=1 también está ocupada y la última posición h(45)+6=2 está libre, por lo que insertamos 45 en la posición 2.

En este punto, todos los pares clave-valor se han insertado correctamente en la tabla hash.

En resumen, el proceso de exploración lineal para resolver colisiones consiste en comprobar la siguiente posición en secuencia hasta encontrar una posición libre. Aunque el método de sonda lineal es simple y fácil de implementar, provocará agregación cuando la tabla hash entre en conflicto y la operación de eliminación será más complicada. Por lo tanto, en aplicaciones prácticas, es necesario elegir un método más apropiado para resolver el problema de colisión según la situación específica. Gracias por leer, espero que esto ayude!