Bonjour,

Je souhaite insérer un élément dans une liste chaînée circulaire, mais je peine un peu. Les éléments doivent être triés selon un ordre décroissant. Bien que cette fonction soit erronée, voilà où j'en suis actuellement (histoire de vous prouver que j'ai essayer de chercher) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Ajout(ListeArticles liste, Article *a) {
    Article *tmp = liste;
 
    while(tmp->nextArticle != liste) {
        if(a->PU >= tmp->nextArticle->PU) {
            a->nextArticle = tmp->nextArticle->nextArticle;
            tmp->nextArticle = a;
        }
 
        tmp = tmp->nextArticle;
    }
 
    if(tmp->nextArticle == liste) {
        a->nextArticle = liste;
        tmp->nextArticle = a;
    }
}
Je débute avec les listes chaînées, veuillez donc m'excuser si la raison pour laquelle je suis bloquée paraît stupide.

PS : La fonction ne peut renvoyer que void à cause de la consigne qu'on m'a donnée.

Merci d'avance pour votre aide.