Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #define max 100
- #define pf printf
- #define sf scanf_s
- typedef struct
- {
- int q[max];
- int r,f,flag;
- }queue;
- int isempty(queue *t)
- {
- if(t->flag==0)
- return 1;
- else return 0;
- }
- void insert(queue *t,int ele)
- {
- if(t->f==(t->r+1)%max && t->flag==1)
- {
- pf("\nCircular Queue Overflow\n");
- return;
- }
- t->flag=1;
- t->r=(t->r+1)%max;
- t->q[t->r] = ele;
- return;
- }
- void delete1(queue *t)
- {
- int z;
- if(isempty(t))
- {
- pf("\nCircular Queue Underflow\n");
- return;
- }
- if(t->f==t->r)
- {
- t->flag=0;
- }
- z = t->q[t->f];
- t->f=(t->f+1)%max;
- pf("\nDeleted element is %d",z);
- return;
- }
- void display(queue *t)
- {
- int i;
- if(isempty(t))
- {
- pf("\nCircular Queue Underflow\n");
- return;
- }
- for(i=t->f;i<=t->r;i=(i+1)%max)
- {
- pf("%d\n",t->q[i]);
- }
- return;
- }
- int main()
- {
- int ch,ele;
- queue x;
- x.f=0;
- x.flag=0;
- x.r=-1;
- pf("\nIMPLEMENTATION OF CIRCULAR QUEUE\n");
- while(1)
- {
- pf("\nEnter choice\n");
- pf("\n1.Insert 2.Delete 3.Display 4.Exit\n");
- sf("%d",&ch);
- if(ch==4)
- {
- break;
- }
- else
- {
- switch(ch)
- {
- case 1:pf("\nEnter element to insert\n");
- sf("%d",&ele);
- insert(&x,ele);
- break;
- case 2:delete1(&x);
- break;
- case 3:display(&x);
- break;
- default:pf("\nINVALID INPUT\n");
- }
- }
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement