#include<stdio.h>
#include<stdlib.h>
#define MAX 5
typedef struct queue
{
int q[MAX],front,rear,count;
}QUEUE;
void init_queue(QUEUE *qp)
{
qp->front = qp->count = 0;
qp->rear = -1;
}
int is_full(QUEUE *qp)
{
return qp->count==MAX;
}
int is_empty(QUEUE *qp)
{
return qp->count==0;
}
void add(QUEUE *qp,int val)
{
if(is_full(qp))
{
printf("Queue full.\n");
return;
}
qp->count++;
qp->rear = (qp->rear+1)%MAX;
qp->q[qp->rear]=val;
}
int delete(QUEUE *qp)
{
int val;
if(is_empty(qp))
{
printf("Queue empty.\n");
return -999;
}
qp->count--;
val = qp->q[qp->front];
qp->front = (qp->front+1)%MAX;
return val;
}
Name:
Class:
Roll No:
void display(QUEUE *qp)
{
int i;
if(is_empty(qp))
{
printf("Queue empty.\n");
return;
}
for(i=qp->front;i!=qp->rear;i=(i+1)%MAX)
{
printf("%d\t",qp->q[i]);
}
printf("%d\n",qp->q[i]);
}
void main()
{
int ch,val;
QUEUE cq;
init_queue(&cq);
while(1)
{
printf("1.Add Queue\n");
printf("2.Delete Queue\n");
printf("3.Display Queue\n");
printf("4.Exit\n");
printf("Enter Your Choice(1-4): ");
scanf("%d",&ch);
switch(ch)
{
case 1:
printf("Enter value: ");
scanf("%d",&val);
add(&cq,val);
break;
case 2:
printf("Deleted element: %d\n",delete(&cq));
break;
case 3:
display(&cq);
break;
case 4:
exit(0);
}
}
}
Output-
1.Add Queue
2.Delete Queue
3.Display Queue
4.Exit
Enter Your Choice(1-4): 1
Enter value: 9
1.Add Queue
2.Delete Queue
3.Display Queue
4.Exit
Enter Your Choice(1-4): 3
9
1.Add Queue
2.Delete Queue
3.Display Queue
4.Exit
Enter Your Choice(1-4): 2
Deleted element: 9
1.Add Queue
2.Delete Queue
3.Display Queue
4.Exit
Enter Your Choice(1-4): 4