C 9
Queue.c Guest on 5th April 2021 10:53:33 AM
  1. #include <stdio.h>
  2.  
  3. #define SIZE 10
  4.  
  5. typedef struct{
  6.     int elemento[SIZE];
  7.     int inicio;
  8.     int fim;
  9.     int quantidade;
  10. } QType;
  11.  
  12. int inicializa(QType *q) {
  13.     q->inicio=0;
  14.     q->fim=0;
  15.     q->quantidade=0;
  16. }
  17.  
  18. int empty(QType * q) {
  19.   if (q->inicio == q->fim) {
  20.     printf("Fila está vazia\n"n");
  21.     return -1;
  22.   }
  23.   else return 0;
  24. }
  25.  
  26. int full(QType * q) {
  27.  
  28.     if (q->quantidade == SIZE) {  
  29.         printf("Fila está cheia\n");
  30.         return -1;
  31.     } else{
  32.         return 0;
  33.     }
  34. }
  35.  
  36. int enqueue(QType *q, int x) {
  37.     q->elemento[q->fim] = x;
  38.     q->quantidade++;
  39.     if (q->fim == SIZE) {
  40.         q->fim = 0;
  41.     } else {
  42.         q->fim++;
  43.     }
  44.     return 0;
  45. }
  46.  
  47. int dequeue(QType *q) {
  48.  
  49.     int x;
  50.  
  51.     x = q->elemento[q->inicio];
  52.     q->quantidade--;
  53.     if (q->inicio == SIZE) {
  54.         q->inicio = 0;
  55.     } else {
  56.         q->inicio++;
  57.     }
  58.  
  59.     return x;
  60. }
  61.  
  62.  
  63. int main(void) {
  64.  
  65.     QType queue;
  66.  
  67.     int i,temp;
  68.  
  69.     inicializa(&queue);
  70.  
  71.     empty(&queue);
  72.  
  73.     enqueue(&queue,2);
  74.  
  75.     empty(&queue);
  76.  
  77.     enqueue(&queue,4);
  78.     enqueue(&queue,1);
  79.     enqueue(&queue,5);
  80.     enqueue(&queue,3);
  81.     enqueue(&queue,8);
  82.     enqueue(&queue,6);
  83.     enqueue(&queue,7);
  84.     enqueue(&queue,10);
  85.     enqueue(&queue,9);
  86.    
  87.     full(&queue);
  88.  
  89.     temp = dequeue(&queue);
  90.  
  91.     printf("temp = %d\n", temp);
  92.  
  93.     temp = dequeue(&queue);
  94.  
  95.     printf("temp = %d\n", temp);
  96.  
  97.     for(i=queue.inicio; i<queue.fim; i++){
  98.         printf("queue[%d] = %d\n", i, queue.elemento[i]);
  99.     }
  100.  
  101.     return

Paste-bin is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.