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 :

liste chainée comment faire un passage par adresse ?


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut liste chainée comment faire un passage par adresse ?
    salut si je modifier une liste chainée avec un passage par adresse je dois bien faire comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct cellule
    {
    int data;
    structure cellule *suivant;
    }une_cellule;
    typedef struct liste *une_cellule;
    void fonction(liste *l);
    je demande prcq ce matin un prof m'a dit que ce n'etait pas necessaire et m'a fait douté de moi . Qui a raison moi ou lui ?
    merci bcp

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    qu'est ce qui n'est pas nécessaire ?
    si c'est faire un typedef c'est vrai, si c'est passé par adresse c'vest vrai aussi !!!
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par isoman
    salut si je modifier une liste chainée avec un passage par adresse je dois bien faire comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct cellule
    {
    int data;
    structure cellule *suivant;
    }une_cellule;
    typedef struct liste *une_cellule;
    void fonction(liste *l);
    je demande prcq ce matin un prof m'a dit que ce n'etait pas necessaire et m'a fait douté de moi . Qui a raison moi ou lui ?
    merci bcp
    Avec ça, tu peux ajouter à une liste existante, mais tu ne peux ni créer ni ajouter en tête (enfin, c'est techniquement possible, mais personne n'en saura rien).

    Tu peux faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste *fonction(liste *l);
    qui s'utilise comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       liste *maliste = ajout(NULL, data);
       maliste = ajout (maliste, data);
       maliste = ajout (maliste, data);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       liste *maliste = NULL;
       maliste = ajout (maliste, data);
       maliste = ajout (maliste, data);
       maliste = ajout (maliste, data);
    ou bien utiliser une structure qui garde la tête (et la queue, ça accelère les traitements genre ajout en queue...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    struct node
    {
       struct node *p_next;
       int data;
    };
     
    struct list
    {
       struct node *p_head;
       struct node *p_tail;
    };
     
    void ajout (struct list *p, int data);
    C'est beaucoup plus clair...
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/12/2006, 17h46
  2. Comment faire une action, par rapport au temps
    Par Happy dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/11/2005, 13h27
  3. Réponses: 13
    Dernier message: 03/06/2005, 11h26
  4. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 17h33
  5. [Debutant(e)]passage par adresse?
    Par cap2fosse dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2004, 10h05

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