Bonsoir tout le monde, j'ai un tout petit exercice que j'ai du mal a finir. Bon l'énoncée est la suivante : Ecrire une fonction qui affiche le nombre d'occurences de chaque élément d'une liste chainée :
voila le code que je propose :
la structure est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void Occurences2(Noeud *T){ int compteur; Noeud *P=T;Noeud *Q; while(P){ compteur = 0; Q=T; while(Q){ if(Q->v == P->v) compteur++; Q=Q->suiv; } printf("%d figure %d fois\n",P->v,compteur); P=P->suiv; } } }
-> le probleme c'est qu'il ya une redondance au niveau des affichage, par exemple : la liste est 45567664 le resultat de la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct Noeud{ int v; // valeur du noeud struct Noeud* suiv; // pointeur sur l'élement suivant }Noeud;
est : 4 figure 2 fois
5 figure 2 fois
5 figure 2 fois
6 figure 3 fois
7 figure 1 fois
6 figure 3 fois
6 figure 3 fois
4 figure 2 fois
-> Comment pourais je remedier a ce probleme et merci.
Partager