IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Supprimer dans une liste chainée


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Par défaut Supprimer dans une liste chainée
    Bonjour,

    j'ai un petit soucis au niveau de la suppresion de la premiere instance d'une donnée dans une liste :

    voici les structures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef struct Element Element;
    struct Element
    {
    	void * contenu;
    	Element * suivant;
    };
    typedef struct Liste Liste;
    struct Liste
    {
    	Element *premier;
    	Element *dernier;
    };
    et voici ma fonction :

    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
    18
    19
    20
    21
    22
    23
     
    void supprimerdonnee(Liste *liste, void *donnee){
     
        Element *elem = liste->premier;
     
        if (liste->premier   == NULL){
            exit(EXIT_FAILURE);
        }
     
        if (elem->contenu == donnee){
                liste->premier = elem->suivant;
                free(elem);
        }
     
        while(elem->suivant != NULL){
            if (elem->suivant->contenu == donnee){
                Element *element = elem->suivant;
                elem->suivant = element->suivant;
                free(element);
            }
            elem = elem->suivant;
        }
    }
    Ça compile mais ne fonctionne pas .

    Merci de vos réponses.
    Cordialement.

    PS : ma structure de chaîne à deux pointeurs mais je n'en utilise qu'un car je suis pas encore assez à l'aise avec les pointeurs.

  2. #2
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    tu veu suprimer la premiere instance de quel structure ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Par défaut
    Je voudrais supprimer l'instance présente dans Liste

  4. #4
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    tu a mal fait les structure de donnée par ce
    n'en fait pas partie et par la suite tu l'utilise dans ta procedure......essaye de conformiser les chose et renvois le code comme sa je vais te regler le probleme

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Par défaut
    Citation Envoyé par Abacar94 Voir le message
    tu a mal fait les structure de donnée par ce
    n'en fait pas partie et par la suite tu l'utilise dans ta procedure......essaye de conformiser les chose et renvois le code comme sa je vais te regler le probleme
    Je comprends pas trop ce que tu veux dire ^^ désolé =)

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Par défaut
    J'ai réussi à trouver la solution. Le problème était que je ne m'était pas de return et donc la procédure tournée en boucle.

  7. #7
    Membre actif Avatar de Abacar94
    Homme Profil pro
    L2 Math-informatique
    Inscrit en
    Novembre 2015
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : L2 Math-informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 103
    Par défaut
    ravie que tes pu régler le problème mais a ce que je sache les return sont facultatif dans les procédure et obligatoire dans les fonction

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/07/2007, 19h28
  2. suppression dans une liste chainée
    Par tomtom421 dans le forum C
    Réponses: 8
    Dernier message: 21/04/2007, 16h29
  3. Réponses: 10
    Dernier message: 08/12/2006, 02h18
  4. récupérer un objet dans une liste chainée
    Par marsuwhite dans le forum Langage
    Réponses: 4
    Dernier message: 05/06/2006, 14h05
  5. Réponses: 2
    Dernier message: 10/10/2005, 02h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo