Table de hachage

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!
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    il faut faire une fonction de hachage
    0
    1. cyrina
       
      merci Lami, c ca mon pb, je sais pas comment procéder;
      tu peux m'aider stp?
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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;
    }
    
    
    0
    1. cyrina
       
      merci Lami, mais le pb c que je connais pas d'avance la taille de la table; la taille de la liste chainée
      merci
      0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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 ;-)
    0
    1. cyrina
       
      ok merci .
      0