All pastes #940342 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-03-12 22:09 UTC
rendered paste body
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;
}