[c]supprimer le 1erelemnt d'une table de hac
stroumpf
Messages postés
289
Date d'inscription
Statut
Membre
Dernière intervention
-
stroumpf Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
stroumpf Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je suis bloqueé dans la fonction qui supprime le 1er elemnt d'une table de hachage.
merci
je suis bloqueé dans la fonction qui supprime le 1er elemnt d'une table de hachage.
merci
A voir également:
- [c]supprimer le 1erelemnt d'une table de hac
- Supprimer rond bleu whatsapp - Guide
- Table ascii - Guide
- Supprimer une page word - Guide
- Table des matières word - Guide
- Impossible de supprimer un fichier - Guide
2 réponses
stroumpf c'est bien de poster des sujets et de demander
de l'aide mais c'est bien aussi de répondre quand on te de-
mande des choses pour t'aider -_-'
Flawon
de l'aide mais c'est bien aussi de répondre quand on te de-
mande des choses pour t'aider -_-'
Flawon
typedef struct c{ int pos; int nl; struct c *suivant; }Coordonnees; typedef struct L{ char mot[50]; Coordonnees *c; struct L *suivant; }Liste; int main(void) { // Declaration des variables int a; FILE *F; // Descripteur du fichier texte char mot[100]; // variable utilisée pour stocker le mot en cours de lecture int i; // variable utilisée lors du parcours de la TableHash unsigned int cle,pt; // variables pour stocker les cles du mot en cours et la clé du caractère '.' char *temp; // variable pour stocker le mot en cours de lecture char c; // ?? Liste **TableHash; // tableau de liste TableHash = (Liste **) malloc (TAILLEHASH * sizeof(Liste *)); // allocation en memoire du tableau for(i=0;i<TAILLEHASH;++i) // Initialisation des TableHash[i] = NULL; // pointeurs contenus dans le tableau pt=hash_cle("."); // calcul de la cle equivalent à un point printf("debut du programme \n----------------------------------\n"); F=fopen("C:\\Users\\cyrine\\Desktop\\Nouveau dossier\\text.txt","r"); // ouverture du fichier texte if(F!= NULL) // si le fichier existe { while(fscanf(F,"%s",mot)==1) // boucle de lecture du fichier { temp = (char*)mot; // recuperation du mot lu cle = hash_cle(temp); // calcul de la cle equivalente if ( (cle!=pt ) && (!ChercherMotDansTableHash(TableHash,temp))) // si le mot n'est pas un point et qu'il n'est pas deja stocke TableHash[cle] = InsertionEnTete(TableHash[cle],temp); // on l'insere en debut du tableau } fclose(F ); // on ferme le descripteur de fichier F=fopen("C:\\Users\\cyrine\\Desktop\\Nouveau dossier\\text.txt","r"); // on rouvre le descripteur de fichier pour revenir au debut PosLigne(F,TableHash); // recherche des coordonnées des diferents mots extraits fclose(F ); // on ferme le descripteur de fichier //filtrage printf("\nla liste non filtree :\n----------------------------------\n"); AfficherTableHash(TableHash); // affichage de la table NON FILTREE printf("\nla liste filtree (2 occurrences au moins) :\n----------------------------------\n"); FiltreListe(TableHash,2); // filtrage de la table AfficherTableHash(TableHash); // affichage de la table FILTREE //géneration des 2seq Liste *seq=NULL; Generer2seq(TableHash, 2, &seq); printf("\nla liste des 2seq :\n----------------------------------\n"); AfficherListe(seq); //printf("Chercher mot : "); //scanf("%s",mot); //if(cle = ChercherMotDansTableHash(TableHash,mot)) // printf("%s existant dans le conteneur %u\n",mot,hash_cle(mot)); //else // printf("%s inexistant dans la table de hash\n"); //scanf("%c",c); // elagage des séquence AfficherTableHash(TableHash); elaguer2seq(seq, TableHash); //printf("%i", a); }} void elaguer2seq(Liste *L, Liste **TableHash) { Liste *p; Liste *q; char *mot; int i=0; int a; Liste *maillon_temp; Liste *last; printf(" seq : %s\n",L->mot); //printf("TableHash : %s\n",TableHash[1]->mot); last=TableHash[i]; for(p=TableHash[i];p!=NULL;p=p->suivant){ if(TableHash[i] != NULL) printf("TableHash : %s\n",TableHash[i]->mot); if (chercher_mot(TableHash[i]->mot,p->mot)==0) printf("%s","condition vérifiée"); TableHash[i]=p->suivant; last=p->suivant; maillon_temp=TableHash[i]; TableHash[i]=TableHash[i]->suivant ; free(maillon_temp); // supprimerMot(p->mot); AfficherTableHash(TableHash); printf("TableHash : %s\n",TableHash[i]->mot); }