/* Queue using Arrays */
#include<stdio.h>
#include<conio.h>
#define MAX 50
void enqueue(int);
int dequeue();
void display();
int queue[MAX];
int front=-1,rear=-1;
void main()
{
int ele,dele,choice;
char ch;
clrscr();
do
{
printf("enter ur choice as... \[Link]\[Link]\[Link]\ninvalid\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("enter the element for insertion\n");
scanf("%d",&ele);
enqueue(ele);
display();
break;
case 2:
dele=dequeue();
printf("\n dele=%d\n",dele);
display();
break;
case 3:
display();
break;
default:
printf("Invalid option\n");
}
printf("\npress Y|y to continue....\n");
scanf(" %c",&ch);
}while(ch=='y'||ch=='Y');
getch();
}
void display()
{
int i=front;
printf("The list of queue elements are....\n");
while(i<=rear)
{
printf("%d->",queue[i]);
i=i+1;
}
printf("NULL\n");
}
void enqueue(int ele)
{
if(rear==MAX-1 && front==0)
{
printf("Queue is full\n");
exit(0);
}
else
{
if(front==-1 && rear==-1)
rear=front=0;
else
rear=rear+1;
queue[rear]=ele;
}
}
int dequeue()
{
int dele;
if(front==-1 && rear==-1)
dele=0;
else
{
dele=queue[front];
if(front==rear)
front=rear=-1;
else
front=front+1;
}
return dele;
}