J'essaie de mettre en œuvre une table de hachage avec chaînage. (m = 191) Mais quand je teste mon code, le tableau apparaît vide!HashTable est vide
table = [[] for x in range(191)]
def hash_function (k):
return k % 191
def insert (table,key):
table[hash_function(key)].append((hash_function(key),key))
with open("test.txt", "r") as file:
for seq in file:
seq_int= [ord(c) for c in seq]
int = seq_int[0] * 128 ** 3 \
+ seq_int[1] * 128 ** 2 \
+ seq_int[2] * 128 + seq_int[3]
insert(table,int)
print table
Je lis la chaîne à partir d'un fichier texte qui contient 1000 mots (une par ligne) de longueur 4.
En premier lieu, appeler une variable 'int' est une très mauvaise idée ** **, parce que' int() 'est une fonction intégrée. deuxièmement, quel est le point d'insérer un tuple de clé une valeur dans la liste si la clé est l'index de la liste? Troisièmement, 'table' est une variable globale, il ne sert à rien de la passer en paramètre à' hash_function'. – DyZ
J'ai couru votre code, et 'table' n'est pas vide. –
Il ne montre rien après l'exécution de l'insert(). – user3085433