Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<conio.h>
- #define max 3
- struct queue
- {
- int item[max];
- int front;
- int rear;
- int count;
- }p;
- void main()
- {
- int a,b,i,s=1,f=1,j;
- p.front=(max-1);
- p.rear=(max-1);
- p.count=0;
- printf("enter \n1.for linear queue \n2.for circular queue\n");
- scanf("%d",&a);
- switch(a)
- {
- case 1:
- p.front=0;
- p.rear=-1;
- p.count=0;
- do
- {
- printf("enter 1.to insert element 2.to delete element 3.to display queue\n");
- scanf("%d",&b);
- switch(b)
- {
- case 1:
- if(p.rear==(max-1))
- {
- printf("the queue is full\n");
- break;
- }
- p.rear++;
- printf("enter the data element\n");
- scanf("%d",&p.item[p.rear]);
- break;
- case 2:
- if(p.front>p.rear)
- {
- printf("queue is empty, cannot delete\n");
- break;
- }
- printf("the element being deleted is %d\n",p.item[p.front]);
- p.front++;
- break;
- case 3:
- if(p.front>p.rear)
- {
- printf("queue is empty\n");
- break;
- }
- printf("elements of the queue are:\n");
- i=(p.front);
- while(i<=(p.rear))
- {
- printf("%d\n",p.item[i]);
- i++;
- }
- break;
- default:
- printf("invalid operator\n");
- break;
- }
- printf("enter 0 to exit\n");
- scanf("%d",&i);
- }while(i!=0);
- break;
- case 2:
- p.front=(max-1);
- p.rear=(max-1);
- do
- {
- printf("enter 1.to insert element 2.to delete element 3.to display queue\n");
- scanf("%d",&b);
- switch(b)
- {
- case 1:
- p.rear=((p.rear+1)%(max));
- printf("index %d %d\n",p.rear,p.front);
- if((p.rear==p.front)&&(p.count==max)&&(s==0))
- {
- printf("the queue is full\n");
- p.rear--;
- break;
- }
- printf("enter the data element\n");
- scanf("%d",&p.item[p.rear]);
- p.count++;
- if(p.rear==p.front)
- {
- p.rear--;
- s=0;
- }
- break;
- case 2:
- if(p.count==0)
- {
- printf("queue is empty, cannot delete\n");
- break;
- }
- if(f!=0)
- p.front=(p.front+1)%max;
- s=1;
- printf("the element being deleted is %d\n",p.item[p.front]);
- f=0;
- p.count--;
- p.front=((p.front+1)%(max));
- break;
- case 3:
- if(p.count==0)
- {
- printf("queue is empty\n");
- break;
- }
- if(f!=0)
- p.front=(p.front+1)%max;
- printf("elements of the queue are:\n");
- i=(p.front);
- j=p.count;
- while(j!=0)
- {
- printf("%d\n",p.item[i]);
- i=((i++)%max);
- j--;
- }
- if(f!=0)
- p.front=(max-1);
- break;
- default:
- printf("invalid operator\n");
- break;
- }
- printf("enter 0 to exit\n");
- scanf("%d",&i);
- }while(i!=0);
- break;
- default:
- printf("invalid operator\n");
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment