Table de hachage

Fermé
cyrina - 8 juin 2008 à 22:18
 cyrina - 9 juin 2008 à 00:01
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!

4 réponses

PS: je programme en C
:)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
8 juin 2008 à 22:38
Salut,

il faut faire une fonction de hachage
0
merci Lami, c ca mon pb, je sais pas comment procéder;
tu peux m'aider stp?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
8 juin 2008 à 22:56
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
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
8 juin 2008 à 23:54
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
ok merci .
0