DS – Circular Queue Program

#include<stdio.h>
#define SIZE 5
int cqueue[SIZE];
int front=-1, rear=-1;
void enqueue(int);
int dequeue(void);
void display(void);
int underflow(void);
int overflow(void);
void main()
{
            int ch,item;
            printf(“***Circular Queue Operations***\n”);
            while(1)
            {
                        printf(“1. Insert \n”);
                        printf(“2. Delete \n”);
                        printf(“3. Display \n”);
                        printf(“4. Exit \n”);
                        printf(“Enter your choice : “);
                        scanf(“%d”,&ch);
                        switch(ch)
                        {
                                    case 1    :         if(!overflow())
                                                            {
                                                                        printf(“Enter item to insert : “);
                                                                        scanf(“%d”,&item);
                                                                        enqueue(item);
                                                            }
                                                            else
                                                            {
                                                                        printf(“Queue is Full\n\n”);
                                                            }
                                                            break;
 
                                    case 2    :         if(!underflow())
                                                            {
                                                                        int ele = dequeue();
                                                                        printf(“Deleted : %d\n\n”,ele);
                                                            }
                                                            else
                                                            {
                                                                        printf(“Queue is Empty\n\n”);
                                                            }
                                                            break;
 
                                    case 3    :         if(!underflow())
                                                            {
                                                                        printf(“The queue is : \n”);
                                                                        display();
                                                            }
                                                            else
                                                            {
                                                                        printf(“No elements to display \n”);
                                                            }
                                                            break;
 
                                    case 4    :         exit(1);
                                    default   :         printf(“Your choice is wrong \n\n”);
                        }
            }
}
 
int underflow()
{
            if((front==-1)&&(rear==-1))
                        return 1;
            else
                        return 0;
}
 
int overflow()
{
            if(((front==0)&&(rear==SIZE-1))||(front==rear+1))
                        return 1;
            else
                        return 0;
}
 
void enqueue(int item)
{
            if((front==-1)&&(rear==-1))
            {
                        front=rear=0;
            }
            else if(rear==SIZE-1)
            {
                        rear=0;
            }
            else
            {
                        rear++;
            }
            cqueue[rear]=item;
            printf(“Inserted : %d\n\n”,item);
}
 
int dequeue()
{
            int item ;
            item = cqueue[front];
            if(front==rear)
            {
                        front=rear=-1;
            }
            else if(front==SIZE-1)
            {          
                        front=0;
            }
            else
            {
                        front=front+1;
            }
            return item ;
}
 
void display()
{
            int i;
            if(front<=rear)
            {
                        for(i=front ; i<=rear ; i++)
                        {
                                    printf(“Element %d : %d \n”, i+1, cqueue[i]);
                        }
            }
            else
            {
                        for(i=front ; i<=SIZE-1; i++)
                        {
                                    printf(“Element %d : %d \n”,i+1,cqueue[i]);
                        }
                        for(i=0 ; i<=rear ; i++)
                        {
                                    printf(“Element %d : %d \n”,i+1,cqueue[i]);
                        }
            }
}
Scroll to Top