Guest User

Untitled

a guest
Jan 21st, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.58 KB | None | 0 0
  1. #include <stdlib.h>    
  2. #include <stdio.h>    
  3.  
  4.  
  5. typedef struct cell {
  6. int           valeur;
  7. struct cell * suivant;
  8. } Cellule;
  9.  
  10.  
  11. Cellule * cons(Cellule * liste, int valeur)
  12. {
  13.   Cellule * new_cell = malloc(sizeof(Cellule));
  14.   new_cell->valeur  = valeur;
  15.   new_cell->suivant = liste;
  16.   return new_cell;
  17. }
  18.  
  19. Cellule * concat(Cellule * premiere, Cellule * deuxieme)
  20. {
  21.   Cellule * parcourt = premiere;
  22.   Cellule * retval = NULL;
  23.   Cellule * parcourt_ret = NULL;
  24.  
  25.   if(parcourt==NULL) return deuxieme;
  26.  
  27.   retval = cons(NULL, parcourt->valeur);
  28.   parcourt_ret = retval;
  29.   while(parcourt->suivant!=NULL) {
  30.     parcourt = parcourt->suivant;
  31.     parcourt_ret->suivant = cons(NULL, parcourt->valeur);
  32.     parcourt_ret = parcourt_ret->suivant;
  33.   }
  34.  
  35.   parcourt_ret->suivant = deuxieme;
  36.  
  37.   return retval;
  38. }
  39.  
  40. int longueur(Cellule * liste)
  41. {
  42.   if (liste==NULL)
  43.     return 0;
  44.   else
  45.     return (1+longueur(liste->suivant));
  46. }
  47.  
  48.  
  49. int main()
  50. {
  51.   Cellule * liste1=NULL, * liste2=NULL,  * liste3=NULL,  * liste4=NULL;
  52.  
  53.   liste1=cons(liste1,1);
  54.   liste2=cons(liste2,1);
  55.   liste2=cons(liste2,1);
  56.   liste3=cons(liste3,1);
  57.   liste3=cons(liste3,1);
  58.   liste3=cons(liste3,1);
  59.   liste4=cons(liste4,1);
  60.   liste4=cons(liste4,1);
  61.   liste4=cons(liste4,1);
  62.   liste4=cons(liste4,1);
  63.   printf("Longueur liste1 = %d\n", longueur(liste1));
  64.   printf("Longueur liste2 = %d\n", longueur(liste2));
  65.   liste3=concat(liste2, liste1);
  66.   printf("Longueur liste3 = %d\n", longueur(liste3));
  67.   liste4=concat(liste3, liste1);
  68.   printf("Longueur liste4 = %d\n", longueur(liste4));
  69.  
  70.   return 0;
  71. }
Add Comment
Please, Sign In to add comment