Ciao a tutti, avrei bisogno una mano nella risoluzione di questo esercizio, per nulla complicato ma che purtroppo non riesco a comprendere.
Si inseriscano i valori 15,25,34,20,12,36,44 in una tabella di hash di dimensione 9 usando l'indirizzamento aperto con una scansione lineare, ovvero la funzione di hash è definita come h(k,i) = (h'(k)+i) mod 9, dove h'(k)=k mod 9.
La teoria sulle tabelle di hash la conosco, cosi come l'indirizzamento aperto con la scansione lineare, però non so come creare un programma in java che faccia questo..
Potrebbe essere corretto un codice di questo tipo?
Oppure è meglio scrivere la tabella di hash su un file txt e poi farlo leggere dal programma?
import java.util.*;
public class hashTable {
public static void main(String[]arg) {
Hashtable ht = new Hashtable(9);
int[]a={15,25,34,20,12,36,44};
for(int i=0;i<a.length;i++) {
boolean b=false;
int k=a[i]%9;
Enumeration en = ht.keys();
while(ht.get(k)!=null) k++;
ht.put(k,a[i]);
}
Enumeration en = ht.keys();
while (en.hasMoreElements())
{ Object k = en.nextElement(); // chiave
Object v = ht.get(k); // valore
System.out.println(k+" "+v);
}
}
}
Grazie