Advertisement
Caio_Matheus

fila.c

Sep 13th, 2016
3,339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef int elem_fila;
  5.  
  6. typedef struct {
  7.     int cabeca;
  8.     int cauda;
  9.     elem_fila *elementos;
  10.     int tam_max;
  11.  
  12. } Fila;
  13.  
  14. void construirFila(Fila *f, int tam_max){
  15.     f->elementos = (int*) malloc(sizeof(int)*tam_max);
  16.     f->cabeca = (-1);
  17.     f->cauda = (-1);
  18.     f->tam_max = tam_max;
  19. }
  20. void destruirFila(Fila *f){
  21.     free(f->elementos);
  22.     free(f);
  23. }
  24. void enfileirar(elem_fila elem, Fila *f){
  25.     if(f->cauda == (f->tam_max)-1){
  26.         printf("A fila esta cheia\n");
  27.     }
  28.     else{
  29.         f->cauda += 1;
  30.         f->cabeca = 0;
  31.         f->elementos[f->cauda+1] = elem;
  32.     }
  33. }
  34. elem_fila desenfileirar(Fila *f ){
  35.     f->cabeca++;
  36.     return (f->elementos[f->cabeca]);
  37. }
  38. int estahVazio(Fila *f){
  39.     if (f->cabeca < 0){
  40.         return 0;
  41.     }
  42.     else
  43.         return 1;
  44. }
  45. elem_fila cabeca(Fila *f){
  46.     return (f->elementos[f->cabeca]);
  47. }
  48. elem_fila cauda(Fila *f){
  49.     return (f->elementos[f->cauda]);
  50. }
  51.  
  52. int main(){
  53.     int tam = 6;
  54.     int x, y, c, a, b, d, e, f;
  55.    
  56.     Fila *fila = (Fila *)malloc(sizeof(Fila)*tam);
  57.    
  58.     construirFila(fila, tam);
  59.    
  60.     enfileirar(2, fila);
  61.     enfileirar(3, fila);
  62.     enfileirar(4, fila);
  63.     enfileirar(5, fila);
  64.     enfileirar(6, fila);
  65.     enfileirar(7, fila);
  66.    
  67.    
  68.     x = desenfileirar(fila);
  69.     y = desenfileirar(fila);
  70.     c = desenfileirar(fila);
  71.     a = desenfileirar(fila);
  72.     b = desenfileirar(fila);
  73.     d = desenfileirar(fila);
  74.    
  75.     enfileirar(8, fila);
  76.     e = desenfileirar(fila);
  77.     printf("%d\n%d\n%d\n%d\n%d\n%d\n%d\n", x, y, c, a, b, d, e);
  78.    
  79.    
  80.    
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement