meryemnamiq

FIFO

Aug 29th, 2020
1,527
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct elem{ int val ;
  5.             struct elem *suiv;};
  6.  
  7. typedef struct elem * pelem;
  8.    
  9. struct file{
  10.     pelem premier; // sortie
  11.     pelem dernier; // entrée
  12. };
  13. typedef struct file * File;
  14.  
  15. pelem tete(File f){
  16.     return f->premier;
  17. }
  18.  
  19. pelem queue(File f){
  20.     return f->dernier;
  21. }
  22.  
  23. int fileVide(File f){
  24.     return f->dernier==NULL && f->premier==NULL;
  25. }
  26.  
  27. void emfiler(File f,pelem e){
  28.     if(fileVide(f)){
  29.         f->dernier=e;
  30.         f->premier=e;
  31.    
  32.     }else{
  33.         f->dernier->suiv=e;
  34.         f->dernier=e;  
  35.     }
  36. }
  37.  
  38. pelem defiler(File f){
  39.     pelem p,s;
  40.     if(!fileVide){
  41.         if(f->dernier==f->premier){
  42.             p=f->premier;
  43.             f->premier=NULL;
  44.             f->dernier=NULL;
  45.         }else{
  46.             p=f->premier;
  47.             f->premier=f->premier->suiv;
  48.             s=p;
  49.             free(s);
  50.         }
  51.     }
  52.     return p;
  53. }
  54. main(){
  55.     File f;
  56.     pelem e;e=malloc(sizeof(struct elem));
  57.     e->val=1;
  58.     e->suiv=NULL;
  59.     pelem e1;e1=malloc(sizeof(struct elem));
  60.     e1->val=2;
  61.     e1->suiv=NULL;
  62.     pelem e2;e2=malloc(sizeof(struct elem));
  63.     e2->val=3;
  64.     e2->suiv=NULL;
  65.    
  66.     emfiler(f,e);
  67.     printf("-----------ttttttt--------");
  68. //  emfiler(f,e1);
  69. //  emfiler(f,e2);
  70. //  printf("-------------------");
  71. //  printf("\n______%d",defiler(f)->val);
  72. //  printf("\n______%d",defiler(f)->val);
  73.    
  74.    
  75. }
RAW Paste Data