| 12
 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;
    } }
} | 
Partager