Types of Queue in Data Structure

Queue is an abstract data type which can be implemented as a linear or circular list. It has a front and rear.

There are four types of Queue:

1. Simple Queue
2. Circular Queue
3. Priority Queue
4. Dequeue (Double Ended Queue)

1. Simple Queue

Simple queue defines the simple operation of queue in which insertion occurs at the rear of the list and deletion occurs at the front of the list.

simple queue

Example: Program for Simple Queue

#include <stdio.h>
#define N 6

int queue[N]={0};
int rear=0,front=0;

void insert(void);
void delet(void);
void display(void);
void create(void);

void main()
{
    int ch=0;
    while(ch!=4)
    {
        
        printf("\n Size of the Queue is : %d",N);
        printf("\n 1.Insert");
        printf("\n 2.Delete");
        printf("\n 3.Display");
        printf("\n 4.Exit");
        printf("\n 5.Create\n");
        printf("\n Enter Your Choice : \n");
        scanf("\n %d",&ch);
        switch(ch)
        {
            case 1:
                insert();
                break;
            case 2:
                delet();
                break;
            case 3:
                display();
                break;
           
            case 4:
                create();
                break;
            case 5:
                printf("\n\t Exit");
                break;
        }
    }
}
void insert(void) //Insert Function
{
    int t;
    if(rear<N)
    {
        printf("\n\t Enter Element in a Queue : ");
        scanf("%d",&t);
        queue[rear]=t;
        rear++;
    }
    else
    {
        printf("\n\t Queue is Overflow");
    }
}
void delet(void) //Delete Function
{
    int i;
    printf("\n\t %d gets deleted.........",queue[front]);
    queue[front]=0;
    front++;
}
void display(void) //Display Function
{
    int i;
    for(i=front;i<rear;i++)
    {
        printf("\n\t %d",queue[i]);
    }
}
void create(void) //Create Fucntion
{
    int t;
    printf("\n\t Enter Element in a Queue : ");
    scanf("%d",&t);
    front=0;
    queue[front]=t;
    rear=front+1;
}


Output:

1. Insert

simple queue insert

2. Display

simple queue display

3. Delete

simple queue delete