Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4.  
  5. typedef int* TabDyn;
  6.  
  7. void td_clear(TabDyn* td);
  8. void td_resize(TabDyn* td, size_t taille);
  9. void td_show(TabDyn td);
  10. int td_size(TabDyn td);
  11. bool td_isSorted(TabDyn td);
  12. void td_sort(TabDyn td);
  13. void td_reverse(TabDyn td);
  14. void td_append(TabDyn* td, TabDyn td2);
  15. bool td_merge(TabDyn* td, TabDyn td2);
  16. void td_add(TabDyn* td, int elem);
  17. bool td_inster(TabDyn* td, int elem);
  18.  
  19. int main(void) {
  20.  
  21.     TabDyn td = NULL;
  22.  
  23.     td_clear(&td);
  24.     td_show(td);
  25.  
  26.     td_resize(&td, 4);
  27.     td_show(td);
  28.  
  29.     td[1]=13; td[2]=1; td[3]=14; td[4]=42;
  30.     td_show(td);
  31.  
  32.     td_resize(&td, 3);
  33.     td_show(td);
  34.  
  35.     TabDyn td2;
  36.     td_resize(&td2, 3);
  37.     td_show(td2);
  38.     td2[1]=3; td2[2]=7; td2[3]=21;
  39.     td_show(td2);
  40.  
  41.     return 0;
  42. }
  43.  
  44. void td_clear(TabDyn* td){
  45.     if(*td == NULL){
  46.         *td = malloc(sizeof(TabDyn));
  47.         if(*td == NULL){
  48.             printf("Allocation impossible \n");
  49.             exit(EXIT_FAILURE);
  50.         }
  51.     }
  52.     *td[0] = 0;
  53. }
  54.  
  55. void td_show(TabDyn td){
  56.     if(!td){
  57.         printf("{tableau non initialise}");
  58.     }
  59.     else{
  60.         int size = td[0];
  61.         printf("n=%d", size);
  62.         if(size > 0){
  63.             printf(" {");
  64.             for(int i = 1; i <= size; i++){
  65.                 if(size == i){
  66.                     printf("%d}", td[i]);
  67.                 }
  68.                 else {
  69.                     printf("%d,", td[i]);
  70.                 }
  71.             }
  72.         }
  73.         else {
  74.             printf(" {}");
  75.         }
  76.     }
  77.     printf("\n");
  78. }
  79.  
  80. void td_resize(TabDyn* td, size_t taille){
  81.  
  82.     if(*td){
  83.         *td = realloc (*td, taille * sizeof(TabDyn) );
  84.  
  85.  
  86.         if ( *td == NULL )
  87.         {
  88.             fprintf(stderr,"Reallocation impossible");
  89.             free(td);
  90.             exit(EXIT_FAILURE);
  91.         }
  92.     }
  93.     else {
  94.         *td = calloc(taille, sizeof(TabDyn));
  95.     }
  96.     *td[0] = taille;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement