Liste chainée croissante
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Liste chainée croissante



  1. #1
    invite83b7296e

    Liste chainée croissante


    ------

    Bonjour, je souhaite voir si les valeurs de ma liste chainée sont rangés de façon croissante, le programme me retourne tous le temps que la liste chainée est croissante alors que non. Avez-vous des indications afin de résoudre ce problème ?

    Merci,

    Code:
    typedef struct ListElement{
        int valeur;
        struct ListElement*suiv;
    } ListElement, *List;
    
    int crois_list(List li);
    
    
    
    
    int crois_list(List li)
    {
        int result=0;
        
        while(li!=NULL)
        {
            if((li->valeur)<(li=li->suiv))
                result=1;
        }
    return result;
    }

    -----
    Dernière modification par Jack ; 04/09/2020 à 22h23. Motif: Modification balise code

  2. #2
    pm42

    Re : Liste chainée croissante

    Ta ligne qui contient
    Code:
    li=li->suiv
    est terriblement fausse.
    Tu fais un = au lieu d'un == donc une affectation, pas un test.
    Tu ne compares pas les valeurs puisque tu ne fais aucune référence à li->suiv->valeur.

    Et quand tu auras corrigé tout ça, il faudra que tu changes ta boucle pour t'arrêter quand li == NULL ou li->suiv == NULL parce qu'on ne compare pas avec le suivi quand il n'existe pas.

  3. #3
    polo974

    Re : Liste chainée croissante

    Code:
    if((li->valeur)<(li=li->suiv))
    c'est bien mignon de passer au suivant dans le test: (li=li->suiv)

    mais il faut faire le bon test car là, tu compares la li->valeur au li->suiv de ton élément de liste ! ! !

    bref, ne pas vouloir trop optimiser, le compilo s'en chargera pour toi.

    de plus, dès que pas bon, tu peut faire un return 1, sinon, après la boucle un return 0 (ou si tu ne veux qu'un seul return, ajouter un break (bof) ou une condition au while (mieux)...)

    et puis, finalement, autant utiliser le for( ; ; ) à la place du while( ) ...
    Dernière modification par polo974 ; 05/09/2020 à 12h16.
    Jusqu'ici tout va bien...

Discussions similaires

  1. Liste chaînée en c
    Par invite75c2964e dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 15/08/2018, 19h12
  2. liste chainée, c++
    Par invite7ca76cd3 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 21/08/2015, 00h05
  3. [C]Liste chainée
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 29
    Dernier message: 09/04/2011, 12h09
  4. liste chainée
    Par invite69686042 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 01/01/2011, 20h18
  5. liste chainée
    Par invite69686042 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 11/12/2010, 16h35