Table de hachage et liste chainéee en C

Fermé
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 10 août 2008 à 16:49
mikelo11 Messages postés 141 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 14 janvier 2013 - 10 août 2008 à 18:13
Bonjour
j'ai un probleme avec ma fonction qui doit parcourir une table e hachage chaine qui contient des mots et cahque mot a une liste des coordonnes.
la liste de coordonnées est sous la forme (numero-ligne, position)
donc dans la table ya des mots de cette focon
bonjour(1,2)(2,3)
le(1,3)(2,4)(4,3)
monde(1,4)
bon cette fonction genere des liste de 2 mots: elle concatene les mots qui ont le meme num-ligne de telle gacon la position du second mot>position 1er mot
là on aura
bonjour le (1,3)(2,4)
bonjour monde (1,4)
....
en fait ya une condition là:
je voudaris rassembler les mots qui sont succesiifs dans la phrase au moin 2 fois dans la meme cellule de la liste chaineee.
SVP vous pouvez m'aider merci.
voila mon bout de code qui est insuffisant

void Generer2seq(Liste **TableHash, int seuil, Liste **seq){ 
     Liste *p1;
     Liste *p2;
     Liste *t;
     Liste *M;
     int X=0;
     char * res;
    Coordonnees *c1;
      Coordonnees*c2;
     int i, j;
     M=NULL;
     for(i=0;i<TAILLEHASH;++i) 
		if(TableHash[i] != NULL) 
		for(p1=TableHash[i];p1!=NULL;p1=p1->suivant) 
		for(j=i;j<TAILLEHASH;++j) 
	 	if(TableHash[j] != NULL){ 
		if (j==i) 
		t=p1; 
        else 
		t=TableHash[j]; 
		for(p2=t;p2!=NULL;p2=p2->suivant){ 
							
		if (strcmp(p1->m->mot,p2->m->mot)!=0){
           
           for (c1=p1->c; c1!=NULL; c1=c1->suivant)
           {
               for (c2=p2->c; c2!=NULL; c2=c2->suivant)
               {
                   if(p1->c->nl ==p2->c->nl)
                   {
                  
                   if(p1->c->pos==p2->c->pos+1)
                   X=X+1;
                   
                       
          }
          }  
          } 
          if (X>=2)
          printf("oui");
          res=strcat(p1->m->mot, p2->m->mot);
          M=InsertionEnTete(M, res);
          AfficherListe(M); 
}
}
}
}


A voir également:

1 réponse

mikelo11 Messages postés 141 Date d'inscription dimanche 9 mars 2008 Statut Membre Dernière intervention 14 janvier 2013 3
10 août 2008 à 18:13
Si tu veux de l'aide commence par mettre des commentaires dans ton code pour qu'on comprenne comme ça on va pouvoir t'aider.
-1