SMI S4 FSAC. Série1 Les listes chaînées. Langage C. SMI S4 Les listes chaînées & 1 - PDF

Description
SMI S4 FSAC Langage C Série1 Les listes chaînées Dernière modification le : 5 avril 2012 à 11h22 Correction proposée par & SMI S4 Les listes chaînées &

Please download to get full document.

View again

of 8
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information
Category:

Crafts

Publish on:

Views: 17 | Pages: 8

Extension: PDF | Download: 0

Share
Transcript
SMI S4 FSAC Langage C Série1 Les listes chaînées Dernière modification le : 5 avril 2012 à 11h22 Correction proposée par & SMI S4 Les listes chaînées & 1 Exo 1 : struct cellule int val; else return (1+longeur(l- suiv)); struct cellule *suiv; ; typedef struct cellule* liste; int vide(liste l) if(l==null) return 1; else return 0; Exo 2: struct cellule int val; struct cellule *suiv; ; typedef struct cellule* liste; int longeur(liste l) int cpt=0; liste p=l; while(p!=null) cpt++; return cpt; Exo 2 Version recursive: int longeur (liste l) If (l==null) return 0; Exo 3 : struct cellule int val; struct cellule *suiv; ; typedef struct cellule* liste void en tete (liste*l,int x) liste q; q=malloc(sizeof(struct cellule)); q- val=x; q- suiv=*l; *l=q ; Exo 4 : struct cellule int val; struct cellule *suiv; ; typedef struct cellule* liste void ajoute_au_milieu (liste l,int a, int x) liste p=l, nouveau ; SMI S4 Les listes chaînées & 2 while(p!=null && p- val!=a) if (P!=NULL) nouveau=malloc(sizeof(struct cellule)); nouveau- val=x; nouveau- suiv=p- suiv; p- suiv=nouveau; Exo 6 : struct cellule int val; struct cellule *suiv; ; typedef struct cellule* liste void supprime_milieu (liste l,int a) liste q,p=l; Exo 5 : struct cellule int val; struct cellule *suiv;; typedef struct cellule *liste void supprimer_en_tete (liste *l) liste p; if(*l==null) printf( pas de suppression ) ; else p= *l; while(p!=null && p- val!=a) if (p!=null && p- suiv!=null) q=p- suiv; p- suiv=q- suiv; free(q); l= *l- suiv; free(p); Exo 7 (1): liste position(liste l,int n) liste p=l,q; int cpt=0; if (n==0) return NULL; else while (p!=null) && (cpt!=n) SMI S4 Les listes chaînées & 3 q=p; cpt++; Exo 8: struct cellule int val; struct cellule *suiv;; if (cpt==n) return(q); return NULL; typedef struct cellule *liste liste concatener(liste La,liste Lb) liste p=la,q=lb; if(la==null) return q; else while(p- suiv!=null) Exo 7 (2): struct cellule int val; struct cellule *suiv; ; p- suiv=q; return la; void incrementer(liste l) liste p=l,q; if(l!=null) while(p!=null && p- val==1) q=p; p- val=0; Exo 8 Version recursive: Liste concatene(liste La, liste Lb) liste p=la; if (La==NULL) return Lb ; else p=malloc(sizeof(struct cellule)); if(p==null) p=malloc(sizeof(struct cellule)): p- val=1; p- suiv=null; q- suiv=p; else p- val=1; p- val = La- val; p- suiv=concatene(la- suiv, Lb); return p ; Exo 9: struct cellule int val; struct cellule *suiv; ; liste(creer(t[],int n) int i; liste l,p,q; l=malloc(sizeof(struct cellule); l- val=t[o]; l- occ=1; SMI S4 Les listes chaînées & 4 l- suivant=null; i=1; while(p!=null && p- val!=t[i]) p=p- suivant; printf( %f, &Treel[i]); for(i=0;i 10;i++) scanf( %f,&timag[i]); if(p==null) p=malloc(sizeof(struct cellule)); p- occ=1; p- suiv=l; l=p; i++; else p- occ++; i++; b- struct cellule float reel; float img; struct cellule *suiv; ; typedef struct cellule *liste return(l); Exo 10: #include stdio.h a- void main() struct complexe float R; float I; ; struct complexe Tab[10]; float Treel[10], Timag[10]; Int i, j=0,k=0; for(i=o;i 10;i++) Scanf( %d,&tab[i]); for(i=0;i 10;i++) if(tab[i].i==0) Treel[j]=Tab[i].R; j++; elseif(tab[i].r==0) Timag[k]=Tab[i].I; k++; for(i=0;i 10;i++) struct Rcellule float Rval; struct cellule *suivant; ; typedef struct cellule *Rliste struct Icellule float Ival; struct cellule *lien; ; typedef struct cellule *Iliste void main() liste q=l; Rliste r,k=null; liste i,f=null; while(q!=null) r=malloc(sizeof(struct Rcellule)); i=malloc(sizeof(struct Icellule)); r- suivant=k; SMI S4 Les listes chaînées & 5 i- lien=f; k=r; f=i; q=q- suiv; typedef struct cellule* pliste ; pliste valide(liste l) liste q=l; pliste p=null, r ; Exo 11 : a- struct cellule int cne; int un; int deux; struct cellule *suiv;; typedef struct cellule* liste; b- int valide(liste l) liste p=l; int cpt=0; while (p!=null) if(p- un=1 && p- deux=1) cpt++; while(q!=null) if(q- un==0 && q- deux==1) r=malloc(sizeof(struct pcellule)); r- pcne=q- cne; r- pun=q- cne; r- pdeux=q- cne; r- lien=p p=r q=q- suiv; Exo 12 : a- struct celf char prenom[10]; int age; struct cellule *lien;; typedef struct celf * penfant; return cpt; c- struct cellule int cne; int un; int deux; struct cellule* suiv; ; typedef struct cellule* liste; struct pcellule int pcne; int pun; int pdeux; struct cellule *lien; ; struct celm char nom[10]; int pere; int mere; penfant enfant; struct cellule *suiv; ; SMI S4 Les listes chaînées & 6 typedef struct celm* liste; C Version Récursive: Int nombre (liste L) b- void naissance(liste l,char N,char pren) if(l==null) return 0; liste p=l; penfant q,r; else if (L- pere ==1 && L- mere==1) while(p!=null && p- non!=n) if(p!=null) q=p- enfant ; return (1+nombre(p- suiv)); else return (nombre(l- suiv)); if(q==null) q=malloc(sizeof(struct celf)); q- prenom=pren; q- age=0; p- enfant=q ; q- lien=null ; else while(q!=null) r=q; q=q- lien; q=malloc(sizeof(struct celf)); q- age=0; q- prenon=pren; q- lien=null; r- lien=q ; c- int occ(list l) if(l==null) return 0; else if(p- pere==1 && p- mere==1) return(1+occ(l- suiv)); else return(occ(l- suiv)); Exo 13 : Int a ; do printf( Entrer un entire ); scanf( %d, &a); while(a==0) l=malloc(sizeof(struct cellule)); l- val=a; l- suiv= NULL; scanf( %d,&a); while (a!=0) q=malloc(sizeof(struct cellule)); q- val=a; p=l; while (p!=null && a =p- val) s=p; if(p!=null) if(p==null) SMI S4 Les listes chaînées & 7 q- suiv=p; l=q; else s- suiv=q; elseif(p==null) q- suiv=p; Exo 15 : Void supprimer(liste *l, int x) Liste p=*l,q ; s- suiv=q; q- suiv=null; scanf( %d, &a); While(p!=NULL && p- val==x) q=p ; P=P- suiv ; If(p!=NULL) p- preced=null; Free(q); Exo 14 : Typedef struct cellulefloat val ; Struct cellule*suiv ; Strcut cellule*preced ; *liste ; Void inserer(liste l, float x, float a) liste l, nouveau ; while(p!=null && p- val!=a) if(p!=null) nouveau=malloc(sizeof(strcut clllule)) ; nouveau- val=x; *l=p While(p!=NULL) If(p- val==x) q=p; (p- preced)- suiv)=p- suiv; If(p- suiv!=NULL) ( p- suiv)- preced=p- preced; free(q); else nouveau- suiv=p- suiv; nouveau- preced=p ; p- suiv=nouveau ; if((nouveau- suiv)- preced=nouveau; SMI S4 Les listes chaînées & 8
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks