[c]supprimer le 1erelemnt d'une table de hac
Fermé
stroumpf
Messages postés
289
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
1 mars 2009
-
10 juil. 2008 à 11:52
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 10 juil. 2008 à 12:23
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 10 juil. 2008 à 12:23
A voir également:
- [c]supprimer le 1erelemnt d'une table de hac
- Supprimer une page word - Guide
- Table ascii - Guide
- Supprimer compte instagram - Guide
- Table des matières word - Guide
- Supprimer edge - Guide
2 réponses
kazouu
Messages postés
466
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
24 juillet 2008
12
10 juil. 2008 à 12:02
10 juil. 2008 à 12:02
link le format de ta table et ta fonction supprimer
Utilisateur anonyme
10 juil. 2008 à 12:20
10 juil. 2008 à 12:20
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
stroumpf
Messages postés
289
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
1 mars 2009
2
10 juil. 2008 à 12:23
10 juil. 2008 à 12:23
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); }