Advertisement
d1i2p3a4k5

4.Circular Queue (DS)

Nov 1st, 2014
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #define max 100
  4. #define pf printf
  5. #define sf scanf_s
  6. typedef struct
  7. {
  8.     int q[max];
  9.     int r,f,flag;
  10. }queue;
  11. int  isempty(queue *t)
  12. {
  13.     if(t->flag==0)
  14.     return 1;
  15.     else return 0;
  16. }
  17. void insert(queue *t,int ele)
  18. {
  19.     if(t->f==(t->r+1)%max && t->flag==1)
  20.     {
  21.         pf("\nCircular Queue Overflow\n");
  22.         return;
  23.     }
  24.     t->flag=1;
  25.     t->r=(t->r+1)%max;
  26.     t->q[t->r] = ele;
  27.     return;
  28. }
  29. void delete1(queue *t)
  30. {
  31.     int z;
  32.     if(isempty(t))
  33.     {
  34.         pf("\nCircular Queue Underflow\n");
  35.         return;
  36.     }
  37.     if(t->f==t->r)
  38.     {
  39.     t->flag=0;
  40.     }
  41.     z = t->q[t->f];
  42.     t->f=(t->f+1)%max;
  43.     pf("\nDeleted element is %d",z);
  44.     return;
  45. }
  46. void display(queue *t)
  47. {
  48.     int i;
  49.     if(isempty(t))
  50.     {
  51.         pf("\nCircular Queue Underflow\n");
  52.         return;
  53.     }
  54.     for(i=t->f;i<=t->r;i=(i+1)%max)
  55.     {
  56.         pf("%d\n",t->q[i]);
  57.     }
  58.     return;
  59. }
  60. int main()
  61. {
  62.     int ch,ele;
  63.     queue x;
  64.     x.f=0;
  65.     x.flag=0;
  66.     x.r=-1;
  67.     pf("\nIMPLEMENTATION OF CIRCULAR QUEUE\n");
  68.     while(1)
  69.     {
  70.         pf("\nEnter choice\n");
  71.         pf("\n1.Insert 2.Delete 3.Display 4.Exit\n");
  72.         sf("%d",&ch);
  73.         if(ch==4)
  74.         {
  75.             break;
  76.         }
  77.         else
  78.         {
  79.             switch(ch)
  80.             {
  81.             case 1:pf("\nEnter element to insert\n");
  82.                 sf("%d",&ele);
  83.                 insert(&x,ele);
  84.                 break;
  85.             case 2:delete1(&x);
  86.                 break;
  87.             case 3:display(&x);
  88.                 break;
  89.             default:pf("\nINVALID INPUT\n");
  90.             }
  91.         }
  92.     }
  93.     _getch();
  94.     return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement