Advertisement
tutorfree

fila.h

Mar 17th, 2016
410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1. #define N 50
  2.  
  3. typedef struct fila
  4. {
  5.     int n;
  6.     int ini;
  7.     float vet[N];
  8. }Fila;
  9.  
  10. Fila *fila_cria()
  11. {
  12.     Fila *f=(Fila*)malloc(sizeof(Fila));
  13.     f->n=0;
  14.     f->ini=0;
  15.     return f;
  16. }
  17.  
  18. int fila_vazia(Fila *f)
  19. {
  20.     if(f->n==f->ini)
  21.         return 1;
  22.     else
  23.         return 0;
  24. }
  25.  
  26. void fila_insere (Fila *f, float v)
  27. {
  28.     if(f->n==N)
  29.     {
  30.         //fila cheia
  31.         printf("Capacidade da fila esgotada.\n");
  32.         return; //retorna ao programa
  33.     }
  34.     //insere novo elemento
  35.     f->vet[f->n]=v;
  36.     f->n++;
  37. }
  38.  
  39. void compacta(Fila *f)
  40. {
  41.     int i;
  42.  
  43.     for(i = 0; i < f->n-1; i++)
  44.         f->vet[i] = f->vet[i+1];
  45.     f->n--;
  46. }
  47.  
  48. float fila_retira(Fila *f)
  49. {
  50.     float v;
  51.     //retira o elemento da fila
  52.     v=f->vet[f->ini]; //ini nunca vai sair do zero
  53.     //f->ini++; ini fica fixo em zero
  54.     compacta(f);
  55.  
  56.     return v;
  57. }
  58.  
  59. void fila_libera(Fila *f)
  60. {
  61.     free(f);
  62. }
  63.  
  64. void mostra_fila(Fila *f)
  65. {
  66.     int i;
  67.     printf("Conteudo da fila\n");
  68.  
  69.     for(i=f->ini;i<f->n;i++)
  70.         printf("%.0f\n",f->vet[i]);
  71.  
  72.     printf("\n");
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement