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