Table de hachage
cyrina
-
cyrina -
cyrina -
Bonjour,
J'ai un petit souci et je compte sur vous pour me trouver une solution.
j'ai une liste de mots stocké dans une liste chainées, le probleme c'est que j'aime les stocker dans une table de hachage.
sachant que j'ai pas de redondance des mots.
chaque element de la liste chainé contient le mot et la liste des position dans le texte.
MA question est comment choisr le clé de hachage.
merci!
J'ai un petit souci et je compte sur vous pour me trouver une solution.
j'ai une liste de mots stocké dans une liste chainées, le probleme c'est que j'aime les stocker dans une table de hachage.
sachant que j'ai pas de redondance des mots.
chaque element de la liste chainé contient le mot et la liste des position dans le texte.
MA question est comment choisr le clé de hachage.
merci!
Configuration: Windows Vista Internet Explorer 7.0
4 réponses
-
-
Salut,
il faut faire une fonction de hachage -
Voici un exemple
#include<stdio.h> #include<stdlib.h> #define TAILLE 101 unsigned hash_cle(char *chaine); int main() { char *chaine; unsigned int valhash; if((chaine = (char *) malloc (50 * sizeof(char))) == NULL) return -1; printf("Entrez une clé : "); scanf("%s",chaine); valhash = hash_cle(chaine); printf("Cle = %s; Valhash : %u\n",chaine,valhash); return -1; } unsigned hash_cle(char *chaine){ unsigned i; for(i=0;*chaine != '\0';++chaine) i = *chaine + 31 * i; return i%TAILLE; } -
La taille de la liste tu n'as pas besoin, puisque les éléments seront alloués dynamiquement
En revanche la taille de la table c'est toi qui la fixe ;-)