Bonjour,
J'ai un problème avec cette fonction. Elle ne fonctionne pas correctement . Elle permet d'ajouter 0 au début de la pile. Puis de vérifier si un élément existe ou pas dans la pile. S'il n'existe pas et que l'élément est plus petit on l'ajout à la pile sinon on reboucle. On s'arrete si tout les éléments sont parcourus.
Je sias que c'est un truc bidon mais je ne parviens pas à l'identifier.
Quelqu'un pourrait-il m'aider à corriger le problème?
Merci.
Code:typedef struct elementCustomer { int no; struct elementCustomer *suivant; }customer; typedef struct liste{ customer *debut; int taille; } Pile; int chercherNoeud(double **distanceEntreVertices, Pile *tas) { int i, j; int trouve; double distanceMin =10000.000; customer *nouveauCustomer; if ((nouveauCustomer = (customer*) malloc (sizeof (customer))) == NULL) { printf("erreur reservation memoire pour la structure de type customer!"); return -1; } if(tas->debut = NULL) { printf("la pile est vide!"); return 1; } else { if(tas->debut != NULL) nouveauCustomer->no = 0; for(i=1; i<nbreNoeuds; i++) { trouve =0; { if( i == nouveauCustomer->no) { trouve = 1; nouveauCustomer->suivant = tas->debut; tas->debut = nouveauCustomer; tas->taille++; } else { trouve = 0; while(trouve == 0 && tas !=NULL) { // } if (distanceEntreVertices[0][i] < distanceMin) { distanceMin = distanceEntreVertices[0][i]; nouveauCustomer ->no = i; printf("%d",i); } } } } } } }
-----