Virajsinh

Queue_02_CQueue

Dec 4th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.33 KB | None | 0 0
  1. //Circular Queue
  2.  
  3. #include<conio.h>
  4. #include<stdio.h>
  5. #define MAX 3
  6.  
  7. //Globar Variable
  8. int queue [MAX];
  9. int front = -1,rear = -1;
  10.  
  11. //UDF Function
  12. void insert();
  13. int Delete_Element();
  14. void display();
  15.  
  16. void main()
  17. {
  18.     int op, val;
  19.     clrscr();
  20.  
  21.     do
  22.     {
  23.         getch();
  24.         clrscr();
  25.  
  26.         printf("\n -------------------------");
  27.         printf("\n -----Circular Queue------");
  28.         printf("\n -------------------------");
  29.         printf("\n 1. Insert");
  30.         printf("\n 2. Delete");
  31.         printf("\n 3. Display");
  32.         printf("\n 4. Exit");
  33.         printf("\n -------------------------");
  34.         printf("\n Maximum 3 Value Get");
  35.         printf("\n -------------------------");
  36.         printf("\n Enter Choice : ");
  37.         scanf("%d", &op);
  38.         printf(" -------------------------");
  39.  
  40.         switch(op)
  41.         {
  42.             case 1:
  43.                 insert();
  44.             break;
  45.  
  46.             case 2:
  47.                 val=Delete_Element();
  48.                 if(val !=-1)
  49.                 {
  50.                     printf("\n The Number Delete is : %d", val);
  51.                 }
  52.             break;
  53.  
  54.             case 3:
  55.                 display();
  56.             break;
  57.         }
  58.     }while(op != 4);
  59.     getch();
  60. }
  61.  
  62. //UDF Function Declaration
  63.  
  64. void insert()
  65. {
  66.     int num;
  67.     printf("\n Enter The Number to be Insert in The Queue : ");
  68.     scanf("%d", &num);
  69.  
  70.     if(front == 0 && rear == MAX  -1 || front == MAX -1 && rear == front -1)
  71.     {
  72.         printf("\n Circular Queue is Overflow");
  73.         return;
  74.     }
  75.     else
  76.     {
  77.         if(front == -1 && rear == -1)
  78.         {
  79.             front = rear = 0;
  80.             queue[rear]=num;
  81.         }
  82.         else if(rear==MAX-1 && front!=0)
  83.         {
  84.             rear=0;
  85.             queue[rear]=num;
  86.         }
  87.         else
  88.         {
  89.             rear++;
  90.             queue[rear]=num;
  91.         }
  92.     }
  93. }
  94.  
  95. int Delete_Element()
  96. {
  97.     int val;
  98.     if(front == -1 && rear == -1)
  99.     {
  100.         printf("\n Circular Queue is Underflow");
  101.         return -1;
  102.     }
  103.  
  104.     val = queue [front];
  105.  
  106.     if(front == rear)
  107.     {
  108.         front = rear = -1;
  109.     }
  110.     else
  111.     {
  112.         if(front == MAX -1)
  113.         {
  114.             front=0;
  115.         }
  116.         else
  117.         {
  118.             front++;
  119.         }
  120.     }
  121.     return val;
  122. }
  123.  
  124. void display()
  125. {
  126.     int i;
  127.     printf("\n ");
  128.     if(front == -1 && rear == -1)
  129.     {
  130.         printf("\n Circular Queue is Empty");
  131.     }
  132.     else
  133.     {
  134.         if(rear>=front)
  135.         {
  136.             for(i=front; i<=rear; i++)
  137.             {
  138.                 printf("\n Element : %d", i);
  139.                 printf(" -> %d", queue[i]);
  140.             }
  141.         }
  142.         else
  143.         {
  144.             for (i=front; i<MAX; i++)
  145.             {
  146.                 printf("\n Element : %d", i);
  147.                 printf(" -> %d", queue[i]);
  148.             }
  149.  
  150.             for (i=0; i<rear; i++)
  151.             {
  152.                 printf("\n Element : %d", i);
  153.                 printf(" -> %d", queue[i]);
  154.             }
  155.         }
  156.     }
  157. }
Add Comment
Please, Sign In to add comment