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 :

[debutant] pb avec liste Chainée.


Sujet :

C++

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut [debutant] pb avec liste Chainée.
    Bonjour voici le code ci-dessous qui fonctionne.
    Toutefois, si l'on ajoute 1 élément à la dernière position ( NULL), je ne comprends pas pourquoi cela fonctionne, c'est à dire comment l'élément précédent connaît le successeur.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    struct cellule
    {
    	int info;
    	cellule * succ;
    }; 
    typedef cellule *liste;
     
     
     
     
     
    void inserordonne(int x, liste *L)
    {
    	cellule *q=NULL;
     
     
     
     
    	if (*L!=NULL && (*L)->info<x)
    	{
    		// *L=(*L)->succ; peut pas faire ça car faut pas toucher à la liste !
    		inserordonne(x,&(*L)->succ);   //equivaut à pointeur pointeur **L.succ
    	}else
    	{
    		q= new cellule; // obligatoire
     
    		q->info=x; // place l'info dans Q
     
    		q->succ=*L;  
    		*L=q; 
    	}
    merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Bonjour,
    Je n'arrive pas a compiler ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    test.cc:7: error: 'liste' has not been declared
    test.cc: In function 'void inserordonne(int, int*)':
    test.cc:9: error: 'NULL' was not declared in this scope
    test.cc:11: error: base operand of '->' is not a pointer
    test.cc:14: error: base operand of '->' is not a pointer
    test.cc:20: error: invalid conversion from 'int' to 'cellule*'
    test.cc:21: error: invalid conversion from 'cellule*' to 'int'
    De plus cette ligne me parait obscure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    inserordonne(x,&(*L)->succ);

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    j'ai édité mon code, il manquait le typedef

Discussions similaires

  1. Probléme avec Liste Chainée
    Par Lucas42 dans le forum C
    Réponses: 6
    Dernier message: 24/01/2008, 20h15
  2. Probleme avec liste chainée
    Par Lucas42 dans le forum C
    Réponses: 3
    Dernier message: 20/11/2007, 19h46
  3. probleme avec liste chainée
    Par isoman dans le forum C
    Réponses: 14
    Dernier message: 29/11/2006, 23h03
  4. probleme avec liste chainée
    Par Liiscar dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/11/2006, 20h37
  5. Mal a la tete avec liste chainée d'objet
    Par Raton dans le forum C++
    Réponses: 23
    Dernier message: 03/08/2005, 22h13

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