Ciao a tutti, oggi, prima dell'esame di Algoritmi e Strutture Dati, dopo una discussione (pacifica ) con un mio collega di università, un dubbio mi ha assalito e ancora adesso non sono sicuro della soluzione corretta! Praticamente se ho una TABELLLA HASH con indirizzamento aperto con la chiave Hash di questo tipo per esempio:
h(k, i) = (k + i) mod 19
dove il 19 sta per gli spazi disponibili nella tabella hash (quindi posizioni da 0 a 18); k è la chiave e i varia da 0 a m-1 (m sarebbe 19 in questo caso).
Ora se ho queste chiavi:
2, 5, 19, 6, 27, 36, 24, 22, 28, 31
le posizioni occupate nella tabella hash dalle rispettive chiavi quali sono?
Il mio dubbio è questo: 1a chiave - h (2, 0) = (2 + 0) mod 19
2 mod 19 teoricamente dovrebbe essere il resto della divisione di 2 / 19 che fa 0 con resto 2! Quindi la posizione occupata è la seconda (cioè nella tabella che parte da 0 la numero 1...) giusto?
per la chiave 5
h(5, 0) = (5 + 0) mod 19
che ha resto 5 e quindi va nella posizione 4 della tabella e così via... è così o sbaglio?