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;
}