Program
6
#include
<stdio.h>
#include<stdlib.h>
#include<stdio_ext.h>
#define MAX 3
char cq[MAX];
int front = -1,rear
= -1;
void inset(char);
void delete();
void display();
int main()
{
int ch;
char item;
while(1)
{
printf("\n\n~~Main
Menu~~");
printf("\n==>
1. Insertion and Overflow Demo");
printf("\n==>
2. Deletion and Underflow Demo");
printf("\n==>
3. Display");
printf("\n==>
4. Exit");
printf("\nEnter
Your Choice: ");
scanf("%d",
&ch);
__fpurge(stdin);
switch(ch)
{
case 1:
printf("\n\nEnter the element to be inserted: ");
scanf("%c",
&item);
insert(item);
break;
case 2: delete();
break;
case 3: display();
break;
case 4: exit(0);
default:
printf("\n\nPlease enter a valid choice");
}
}
}
void insert(char
item)
{
if(front
==(rear+1)%MAX)
{
printf("\n\n~~Circular
Queue Overflow~~");
}
else
{
if(front == -1)
front = rear = 0;
else
rear = (rear+1)%MAX;
cq[rear] = item;
}
}
void delete()
{
char item;
if(front == -1)
{
printf("\n\n~~Circular
Queue Underflow~~");
}
else
{
item = cq[front];
if(front == rear)
//only one element
front = rear = -1;
else
front =
(front+1)%MAX;
printf("\n\nDeleted
element from the queue is: %c ", item );
}
}
void display()
{
int i ;
if(front ==-1)
{
printf("\n\nCircular
Queue Empty");
return;
}
else
{
printf("\nCircular
Queue contents are:\n");
printf("\nFront[%d]->
", front);
for(i=front; i!=rear
; i=(i+1)%MAX)
{
printf("
%c", cq[i]);
}
printf("
%c", cq[i]);
printf("
<-[%d]Rear", rear);
printf("\n");
}
}
No comments:
Post a Comment