int remplir_liste_chainer(nom_page ** tete, char * url, char * date){ nom_page * temp_tete; nom_page * new_elt; //nom_page * temp; date_page * temp_noeud; //date_page * noeud_date; int trouver_date = 0; int trouver_page = 0; //int deb = 0; //nom_page * temp_tete; //temp_tete = *tete; temp_tete = *tete; // Si la liste est vide if(temp_tete==NULL) { temp_tete=(nom_page *)malloc(sizeof(nom_page)); if(temp_tete==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } temp_tete->page=(char *)malloc(sizeof(char) * (strlen(url)+1)); if(temp_tete->page==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } temp_tete->noeud =(date_page *)malloc(sizeof(date_page)); if(temp_tete->noeud ==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } strcpy(temp_tete->page,url); strcpy(temp_tete->noeud->date,date); temp_tete->noeud->compteur=1; temp_tete->suivant = NULL; temp_tete->noeud->suivant = NULL; //*tete = temp_tete; printf("plop : %s %s %d", temp_tete->page, temp_tete->noeud->date, temp_tete->noeud->compteur); //system("PAUSE"); *tete = temp_tete; } else { // On parcour la structure while((temp_tete!=NULL) && (trouver_page==0)) { // On regarde si la page existe deja la liste if(strcmp(temp_tete->page,url)==0) { // elle existe trouver_page=1; //temp_noeud = temp_tete->noeud; // On parcourt le structure des dates while((temp_tete->noeud != NULL) && (trouver_date == 0)) { // On regarde si la date existe dans la liste if(strcmp(temp_tete->noeud->date,date)==0) { //printf("la date existe deja \n"); //system("PAUSE"); // elle existe trouver_date=1; temp_tete->noeud->compteur = temp_tete->noeud->compteur + 1; printf("compteur mis a jours %d\n",temp_tete->noeud->compteur); } printf("je sorts du if %s\n %s %d %d %d\n", url, date, temp_tete->noeud, temp_tete->noeud->suivant, *tete); //system("PAUSE"); // On va a la date suivante printf("wwwwwwwwwwwwwwwww avant %d\n", temp_noeud); temp_tete->noeud = temp_tete->noeud->suivant; printf("wwwwwwwwwwwwwwwww après %d\n", (*tete)->noeud); system("PAUSE"); } printf("je sorte du while trouver : %d\n", trouver_date); // Si trouver_date == 0 alors la date n'existe pas dans la liste if(trouver_date == 0){ printf("la\n"); //system("PAUSE"); // On creer la nouvelle date dans la liste temp_noeud=(date_page *)malloc(sizeof(date_page)); if(temp_noeud==NULL){ puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } strcpy(temp_noeud->date,date); temp_noeud->compteur=1; temp_noeud->suivant = NULL; printf("bon ba sa roxe\n"); temp_tete->noeud->suivant = temp_noeud; printf("plop2\n"); } } // On va à la page suivante printf("adresse avant %d\n", *tete); //temp = temp_tete; temp_tete=temp_tete->suivant; printf("adresse après %d\n", *tete); } // Si la page n'existe pas on la crée if(trouver_page==0) { printf("la page n'existe pas\n"); new_elt=(nom_page *)malloc(sizeof(nom_page)); if(new_elt==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } new_elt->page=(char *)malloc(sizeof(char) * (strlen(url)+1)); if(new_elt->page==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } new_elt->noeud =(date_page *)malloc(sizeof(date_page)); if(new_elt->noeud ==NULL) { puts("(remplir_liste_chainer)erreur d'allocation\n"); return -1; } strcpy(new_elt->page,url); strcpy(new_elt->noeud->date,date); new_elt->noeud->compteur=1; new_elt->suivant = NULL; new_elt->noeud->suivant = NULL; //temp = *tete; temp_tete->suivant = new_elt; } } return 0; }