Remplir une table de hachage

cyrina84 Messages postés 43 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 22 mai 2010 - 20 août 2008 à 16:43
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 22 août 2008 à 18:58
Bonjour
j'ai un probleme :
j'ai une table de hachage  voial sa structure :
typedef struct L2{
    int freq;
    mots *m;
    Coordonnees *c;
     struct L2 *suivant;
}Liste;
cette table contient des mots lu à partir d'un fichier texte et avec chaque mot sa liste de coordonnée.
Bon, il parait que je doit changer la structure de la table de hachage.

pour avoir une table où on stocke les mots et son entier.

Mais j'ai pas une idéé pour le moment

faut avoir par exemmple

bonjour 0

les 1

amis2

quelqu'un a une idéé svp!!

merci
j'attends vos reponses.

5 réponses

cs_Grogan Messages postés 28 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 21 août 2008
20 août 2008 à 17:09
Que représente l'entier!? Le/Les endroit ou on retrouve le mot!? Exemple :


Bonjour les amis amis


Bonjour 0


les 1


amis 2 3


Est-ce que j'ai bien compris la!?
0
cyrina84 Messages postés 43 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 22 mai 2010
20 août 2008 à 17:13
merci d'avoir repondu vite :p
non
par exemple dans l'exemple 2 3 est la liste des coordonnées.
mais l'entier c'est numero quelconque que je veut l'attribuer à chaque mot
par exemple
bonjour->1
les ->2
amis"->3
ainsi de suite
tu me comprends ?
merci
0
cs_Grogan Messages postés 28 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 21 août 2008
20 août 2008 à 17:26
Ok ouais! Donc ce que tu veux c'est une structure qui ne contiendrait que le mot et son entier... une une concaténation du mot et de sont entier!? Je suis peut-être pas vite ce matin (matin pour moi) désolé. Hehehe quand je vais avoir compris je vais etre en mesure de t'aider haha! Désolé encore ;)
0
cyrina84 Messages postés 43 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 22 mai 2010
20 août 2008 à 17:34
merci, pas grave ;)
je veux stocker dans la table
dans chaque case: mot + son numero correspondant+ liste des coordonnees.
enfin bref, moi j'avais l'idee avant d'utiliser les clé des hachage pour chaque mot, mais apres je me suis rendu compte qu'il ya une forte probabilité que2 mots ont la meme clé de hachage.
et donc apres je vais avoir des resultat erronés.
car moi je vais faire des traitement sur les enties correspondants aux mots.
tu vois?
:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
22 août 2008 à 18:58
Si deux mots ont la même clé de hashage, c'est que ce sont les mêmes mots ou alors que ta fonction de hash est pas bonne.

D'apres ce que j'ai compris il te faudrait deux types de structures,
une qui contient le mot, son entier et sa liste de coordonnée, et une
autre qui contient les coordonnées. En général la premiere structure
contient aussi la clé du mot, pour eviter d'avoir a la recalculer a
chaque fois que tu en a besoin (lors d'une recherche par exemple).

en gros je ferais:

struct mot

{

    char* mot;

    int clef;

    int entier;

    struct coord* positions;

    struct mot* suivant;

};


struct coord

{

    int pos;

    struct coord* suivant;

};
0
Rejoignez-nous