Table of Contents

    Implementing a Queue Using Structure in C: Step-by-Step Guide

    Implementing a Queue Using Structure in C: Step-by-Step Guide

    Like stacks, queues are lists. With a queue, however, insertion is done at one end, whereas deletion is performed at the other end. Queue implementation using structure are given below

    queue data structure

    The basic operations on a queue are enqueue, which inserts an element at the end of the list (called the rear), and dequeue, which deletes (and returns) the element at the start of the list (known as the front).

    Insert into queue function

    void insert()
    {
    int item;
    printf("Element : ");
    scanf("%d",&item);
    	if(front==(rear+1)%3)
    	{
    	printf("Queue is Full");
    	return;
    	}
    	
    	if(front==-1)
    	{
    	rear=front=0;
    	}
    	else
    	{
    	rear=(rear+1)%3;
    	}
    cque.cqueue[rear]=item;
    printf("Successfully Insert");
    }

    Delete into queue function

    void del()
    {
    int num;
    	if(front==-1)
    	{
    	printf("Queue Empty");
    	return;
    	}
    	else
    	{
    	num=cque.cqueue[front];
    	printf("Deleted item : %d",num);
    	}
    	
    	if(front==rear)
    	{
    	front=-1;
    	}
    	else
    	front=(front+1)%3;
    	}

    Display from queue

    void display()
    {
    int i;
    	if(front==-1)
    	{
    	printf("Queue Empty");
    	return;
    	}
    else
    	{
    	printf("\n\nItems : ");
    	for(i=front;i

    program of queue using structure

    /***  program of queue  ****/ 
    
    #include
    #include
    
    void insert();
    void del();
    void display();
    
    struct circ
    {
    int cqueue[5];
    };
    
    struct  circ cque;
    int rear=0,front=-1;
    
    void main()
    {
         while(1)
        {
    	int num;
     	//clrscr();
    	printf("\n1.Insertion\n2.Deletion\n3.Display\n0.Exit\n");
    	printf("\n\nSelect Option : ");
    	scanf("%d",&num);
    		switch(num)
    		{
    			case 1:
    				insert();
    				break;
    			case 2:
    				del();
    				break;
    			case 3:
    				display();
    				break;
    			case 0:
    				exit(0);
    				break;
    			default:
    				printf("\n\nInvalid Option ");
    			}
    		getch();
    	}
    }
    
    void insert()
    {
    int item;
    printf("Element : ");
    scanf("%d",&item);
    	if(front==(rear+1)%3)
    	{
    	printf("Queue is Full");
    	return;
    	}
    	
    	if(front==-1)
    	{
    	rear=front=0;
    	}
    	else
    	{
    	rear=(rear+1)%3;
    	}
    cque.cqueue[rear]=item;
    printf("Successfully Insert");
    }
    
    void del()
    {
    int num;
    	if(front==-1)
    	{
    	printf("Queue Empty");
    	return;
    	}
    	else
    	{
    	num=cque.cqueue[front];
    	printf("Deleted item : %d",num);
    	}
    	
    	if(front==rear)
    	{
    	front=-1;
    	}
    	else
    	front=(front+1)%3;
    	}
    
    void display()
    {
    int i;
    	if(front==-1)
    	{
    	printf("Queue Empty");
    	return;
    	}
    else
    	{
    	printf("\n\nItems : ");
    	for(i=front;i

    Output:

    1.Insertion
    2.Deletion
    3.Display
    0.Exit
    
    
    Select Option : 2
    Queue Empty
    1.Insertion
    2.Deletion
    3.Display
    0.Exit
    
    
    Select Option : 1
    Element : 10
    Successfully Insert
    1.Insertion
    2.Deletion
    3.Display
    0.Exit
    
    
    Select Option : 1
    Element : 12
    Successfully Insert
    1.Insertion
    2.Deletion
    3.Display
    0.Exit
    
    
    Select Option : 3
    
    
    Items :    10   12
    1.Insertion
    2.Deletion
    3.Display
    0.Exit
    
    
    Select Option : 0
    Press any key to continue . . .