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 :

Exécution d'une fonction d'insertion dans une liste chainée


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Exécution d'une fonction d'insertion dans une liste chainée
    Bonsoir,
    voila j'ai un tp a rendre qui consiste a créer un arbre binaire où chacun de ses noeuds a comme info une chaine de caractére et un champ qui pointe vers une liste chainée j'ai ecris ma fonction d'insertion en fin de liste avec le cas de l'insertion en téte le programme se compile mais lors de l'execution le programme cesse de fonctionner bref voici mon bout de programme
    Merci d'avance pour votre aide.
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    liste* ajout(liste *tete)
    {    st t;
        char x[10]; liste *p,*q;
     
               q=(liste*)malloc(sizeof(liste));
               puts("Donnez le nom du fichier");
               scanf("%s",x);
               strcpy(q->info.nomf,x);
               puts("Donnez la date du fichier");
               do{
               scanf("%d%d%d",&q->info.jj,&q->info.mm,&q->info.annee);}
               while((q->info.jj<0)&&(q->info.jj>32)&&(q->info.mm<0)&&(q->info.mm>13)&&(q->info.annee<0)&&(q->info.annee>1950));
               puts("Donnez la taille du fichier");
               scanf("%d",q->info.taille);
               q->svt=NULL;
               if (tete==NULL)   return(q);
                 else {
             for(p=tete;p->svt!=NULL;p=p->svt);//avancer jusqu'a la fin
             p->svt=q; return(tete);}
    }
     
    //inserer un fichier
    void insertf(repertoire *r,char x[10])
    {
        repertoire *pere,*adr;
        liste *tete;
        adr=NULL;
        adr=pere=NULL;
      if(r==NULL)
         puts("\nREPERTOIRE PRINCIPAL VIDE\n");
      else
      {  if (!strcmp(r->nomr,x)) adr=r;
       else
        {pere=r;
        if (strcmp(r->nomr,x)<0)
        insertf(r->sucg,x);
        else
        if (strcmp(r->nomr,x)>0)
        insertf(r->sucd,x);}
     
        if (adr!=NULL)
        {
            adr->fichier=ajout(adr->fichier);
            puts("\nsucces de l'ajout du fichier\n");
        }
        else { // cas où le repertoire n'existe pas
                repertoire *noeud;
                noeud=nouveaurep(x);
               tete=(liste*)malloc(sizeof(liste));
               noeud->fichier=tete;
               ajout(&tete);
               if (strcmp(noeud->nomr,pere->nomr)<0)
                pere->sucd=noeud;
               else
                pere->sucg=noeud;
        } }
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Commence par nous présenter correctement ton code. Ton indentation hasardeuse rend sa lecture très difficile.
    Ensuite utilise un débogueur afin de bien cibler la ligne qui pose problème, et nous en faire part.

    Il y a de bonnes chances qu'il manque un & dans cette ligne (ton compilateur a dû te prévenir) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d",q->info.taille);

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    merci beaucoup c etait ca mon erreur a force de fatigue je suppose enfin bonne continuation !

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

Discussions similaires

  1. Objet existant reconnu dans une fonction mais pas dans une autre
    Par Jiyuu dans le forum Général Python
    Réponses: 0
    Dernier message: 20/09/2011, 18h19
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. [Dojo] Objet Dojo créé dans une fonction et utilisé dans une autre.
    Par hapalemur dans le forum Bibliothèques & Frameworks
    Réponses: 10
    Dernier message: 05/06/2009, 13h59
  4. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08
  5. Réponses: 14
    Dernier message: 10/01/2007, 10h12

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