C program to convert an array into a circular queue

PROGRAM:

#include<stdio.h>
void insert(int [], int *,int *,int);
void delet(int [], int *,int *,int);
void disp(int [], int *,int *,int);
int main()
{
int size=5,choice;
int q[5];
int f=0,r=-1,count=0;
    for(;;)
    {
        printf("Enter your choice\n");
        printf("Enter 1 to insert\n");
        printf("Enter 2 to delete\n");
        printf("Enter 3 to disp\n");
        printf("Enter 0 to exit\n");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1: insert(q,&r,&count,size);
                    break;
            case 2: delet(q,&f,&count,size);
                    break;
            case 3: disp(q,&f,&count,size);
                    break;
            case 0: return 0;
                    break;
            default:printf("Invalid entry\n");
        }
    }
}
//function to insert element into queue
void insert(int q[], int *r,int *count,int size)
{
    int elem;
    if(*count==size)
        printf("Insert not possible, Queue is Full!\n");
    else
    {
        *r=(*r+1)%size;
        printf("Enter an element\n");
        scanf("%d",&elem);
        q[*r]=elem;
        *count=*count+1;
    }
}
//function to delete element from queue
void delet(int q[], int *f,int *count,int size)
{
    if(*count==0)
        printf("Delete not possible, Queue empty!\n");
    else
    {
        printf("Element deleted is %d\n",q[*f]);
        *f=(*f+1)%size;
        *count=*count-1;
    }
}
//function to display elements in a queue
void disp(int q[], int *f,int *count,int size)
{
    int i,f1;
    f1=*f;
    if(*count==0)
        printf("Display not possible, Queue empty!\n");
    else
    {
        printf("Displaying Queue:\n");
        for(i=0;i<*count;i++)
        {
            printf("%d\t",q[f1]);
            f1=(f1+1)%size;
        }
        printf("\n");
    }
}



OUTPUT:

Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
5
Invalid entry
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
2
Delete not possible, Queue empty!
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
3
Display not possible, Queue empty!
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
10
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
20
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
30
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
3
Displaying Queue:
10      20      30
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
40
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
50
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Insert not possible, Queue is Full!
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
3
Displaying Queue:
10      20      30      40      50
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
2
Element deleted is 10
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
2
Element deleted is 20
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
60
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Enter an element
70
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
1
Insert not possible, Queue is Full!
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
3
Displaying Queue:
30      40      50      60      70
Enter your choice
Enter 1 to insert
Enter 2 to delete
Enter 3 to disp
Enter 0 to exit
0

Popular Posts