Advertisement
Guest User

Queue W/ Header - L8

a guest
Oct 9th, 2015
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "queue.h"
  4.  
  5. void queue_create (queue_t *q)
  6. {
  7.     q->dados[0] = 2;
  8.     q->dados[1] = 1;
  9.     q->tam = 0;
  10. }
  11.  
  12. void queue_push (queue_t *q, int x)
  13. {
  14.     if (!queue_full(*q))
  15.     {
  16.         q->dados[1] >= 100 ? q->dados[1] = 2 : q->dados[1]++;
  17.         q->dados[q->dados[1]] = x;
  18.         q->tam++;
  19.     }
  20.     else
  21.         printf("Fila cheia!\n");
  22. }
  23.  
  24. int queue_pop (queue_t *q)
  25. {
  26.     if (!queue_empty(*q))
  27.     {
  28.         int x = q->dados[q->dados[0]];
  29.         q->dados[0] >= 100 ? q->dados[0] = 2 : q->dados[0]++;
  30.         if (q->dados[0] >= 100)
  31.             q->dados[0] = 2;
  32.         q->tam--;
  33.         return x;
  34.     }
  35.     else
  36.         printf("Fila vazia!\n");
  37. }
  38.  
  39. int queue_empty (queue_t q)
  40. {
  41.     if (!q.tam) return 1;
  42.     return 0;
  43. }
  44.  
  45. int queue_full (queue_t q)
  46. {
  47.     if (q.tam == MAXN) return 1;
  48.     return 0;
  49. }
  50.  
  51. int queue_front (queue_t q)
  52. {
  53.     return q.dados[q.dados[0]];
  54. }
  55.  
  56. void queue_print (queue_t q)
  57. {
  58.     int i;
  59.     printf("Front:|");
  60.     for (i = q.dados[0]; i != q.dados[1]; i >= 100 ? i = 2 : i++)
  61.     {
  62.         printf("%d|", q.dados[i]);
  63.     }
  64.     printf("%d|:Back\n", q.dados[i]);
  65.     printf("Tam: %d\n", q.tam);
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement