Implementation of Queues
1. Implementation using Array (Static Queue)2. Implementation using Linked List (Dynamic Queue)
Structure of Queue
Structure of Queue.
#define max 5
struct queue
{
int data[max];
int front, rear ;
}
Algorithm for Insertion in Queue
Insert ( ) 1. If (REAR == N) Then [Check for overflow] 2. Print: Overflow 3. Else 4. If (FRONT and REAR == 0) Then [Check if QUEUE is empty] (a) Set FRONT = 1 (b) Set REAR = 1 5. Else 6. Set REAR = REAR + 1 [Increment REAR by 1] [End of Step 4 If] 7. QUEUE[REAR] = ITEM 8. Print: ITEM inserted [End of Step 1 If] 9. Exit
Algorithm for Deletion in Queue
Delete ( ) 1. If (FRONT == 0) Then [Check for underflow] 2. Print: Underflow 3. Else 4. ITEM = QUEUE[FRONT] 5. If (FRONT == REAR) Then [Check if only one element is left] (a) Set FRONT = 0 (b) Set REAR = 0 6. Else 7. Set FRONT = FRONT + 1 [Increment FRONT by 1] [End of Step 5 If] 8. Print: ITEM deleted [End of Step 1 If] 9. Exit
Array implementation of Queue
In this type of implementation we use array structure for data storage.
#include<stdio.h>
#include<conio.h>
#define SIZE 5
int front=-1;
int rear=-1;
int q[SIZE];
void insert();
void del();
void display();
void main()
{
int choice;
clrscr();
do
{
clrscr();
printf("\t Menu");
printf("\n 1. Insert");
printf("\n 2. Delete");
printf("\n 3. Display ");
printf("\n 4. Exit");
printf("\n Enter Your Choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
insert();
display();
getch();
break;
case 2:
del();
display();
getch();
break;
case 3:
display();
getch();
break;
case 4:
printf("End of Program....!!!!");
getch();
exit(0);
}
}while(choice!=4);
}
void insert()
{
int no;
printf("\n Enter No.:");
scanf("%d",&no);
if(rear < SIZE-1)
{
q[++rear]=no;
if(front==-1)
front=0;// front=front+1;
}
else
{
printf("\n Queue overflow");
}
}
void del()
{
if(front==-1)
{
printf("\nQueue Underflow");
return;
}
else
{
printf("\nDeleted Item:-->%d\n",q[front]);
}
if(front==rear)
{
front=-1;
rear=-1;
}
else
{
front=front+1;
}
}
void display()
{
int i;
if(front==-1)
{
printf("\nQueue is empty....");
return;
}
for(i=front;i<=rear;i++)
printf("\t%d",q[i]);
}
![]() |
![]() |


