Advertisement
Rakibul_Ahasan

Queu_Pointer_Array

Aug 23rd, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. #define Q_SIZE 5
  4.  
  5. typedef struct{
  6.     int data[Q_SIZE+1];
  7.     int head;
  8.     int tail;
  9. }Queue;
  10.  
  11. void enqueue(Queue *q,int item)
  12. {
  13.     if((q->tail+1)%(Q_SIZE+1)==q->head){
  14.         printf("Queue is full\n");
  15.         return;
  16.     }
  17.     q->data[q->tail]=item;
  18.     q->tail=(q->tail+1)%(Q_SIZE+1);
  19. }
  20.  
  21. int dequeue(Queue *q)
  22. {
  23.     int item;
  24.     if((q->tail)==q->head){
  25.         printf("Queue is empty!!\n");
  26.         return -1;
  27.     }
  28.     item=q->data[q->head];
  29.     q->head=(q->head+1)%(Q_SIZE+1);
  30.  
  31.     return item;
  32. }
  33.  
  34. int main()
  35. {
  36.     Queue my_q;
  37.     int item;
  38.  
  39.     my_q.head=0;
  40.     my_q.tail=0;
  41.  
  42.     enqueue(&my_q,10);
  43.     printf("Tail:%d\n",my_q.tail);
  44.     enqueue(&my_q,20);
  45.     printf("Tail:%d\n",my_q.tail);
  46.     enqueue(&my_q,30);
  47.     printf("Tail:%d\n",my_q.tail);
  48.     enqueue(&my_q,40);
  49.     printf("Tail:%d\n",my_q.tail);
  50.     enqueue(&my_q,50);
  51.     printf("Tail:%d\n",my_q.tail);
  52.     enqueue(&my_q,60);
  53.     printf("Tail:%d\n\n",my_q.tail);
  54.  
  55.     printf("Beginning head:%d\n",my_q.head);
  56.     item=dequeue(&my_q);
  57.     printf("item = %d, head:%d\n",item,my_q.head);
  58.     item=dequeue(&my_q);
  59.     printf("item = %d, head:%d\n",item,my_q.head);
  60.     item=dequeue(&my_q);
  61.     printf("item = %d, head:%d\n",item,my_q.head);
  62.     item=dequeue(&my_q);
  63.     printf("item = %d, head:%d\n",item,my_q.head);
  64.     item=dequeue(&my_q);
  65.     printf("item = %d, head:%d\n",item,my_q.head);
  66.     item=dequeue(&my_q);
  67.     printf("item = %d, head:%d\n",item,my_q.head);
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement