Thursday, 28 July 2022

Double Ended Queue in C language

 


#include<stdio.h>

#include<conio.h>

#define n 5


void enqueue_front();

void dequeue_front();

void enqueue_rear();

void dequeue_rear();

void display();

void get_front();

void get_rear();

void is_full();

void is_empty();


int queue[n],r=-1,f=-1;


void main()

{

    int ch;

    clrscr();


    printf("1.enqueue front\n2.enqueue rear\n3.dequeue front\n4.dequeue rear\n");

    printf("5.display\n6.get front\n7.get rear\n8is full\n9.isempty\n10.exit\n");


    do

    {

        printf("\nenter choice: ");

        scanf("%d",&ch);


        switch(ch)

        {

            case 1: enqueue_front();

            break;


            case 2: enqueue_rear();

            break;


            case 3: dequeue_front();

            break;


            case 4: dequeue_rear();

            break;


            case 5: display();

            break;


            case 6: get_front();

            break;


            case 7: get_rear();

            break;


            case 8: is_full();

            break;


            case 9: is_empty();

            break;


            case 10: exit(0);


            default: printf("\n\t\t!!  enter valid choice  !!\n");

        }

    }while(ch != 10);

}


void enqueue_rear()

{

    if(r==-1 && f==-1)

    {

        r = f = 0;

        printf("enter value: ");

        scanf("%d",&queue[r]);

    }

    else if((r==n-1 && f==0) || (r+1 == f))

    {

        printf("\n\t\t\t!!  queue is full  !!\n");

    }

    else if(r==n-1 && f!=0)

    {

        r=0;

        printf("enter value: ");

        scanf("%d",&queue[r]);

 
  }

    else

    {

        r++;

        printf("enter value: ");

        scanf("%d",&queue[r]);

    }

}


void enqueue_front()

{

    if(f==-1 && r==-1)

    {

        f = r = 0;

        printf("enter value: ");

        scanf("%d",&queue[f]);

    }

    else if((f==0 && r==n-1) || (f == r+1))

    {

        printf("\n\t\t\t!!  queue is full  !!\n");

    }

    else if(f==0 && r != n-1)

    {

        f=n-1;

        printf("enter value: ");

        scanf("%d",&queue[f]);

    }

    else

    {

        f--;

        printf("enter value: ");

        scanf("%d",&queue[f]);

    }



}



void dequeue_front()

{

    if(f==-1 && r==-1)

    {

        printf("\n\t\t\t!!  queue is empty  !!\n");

    }

    else if(f==r)

    {

        printf("%d is deleted\n",queue[f]);

        f = r =-1;

    }

    else if(f==n-1)


    {

        printf("%d is deleted\n",queue[f]);

        f=0;

    }

    else

    {

        printf("%d is deleted\n",queue[f]);

        f++;

    }

}



void dequeue_rear()

{

    if(r==-1 && f==-1)

    {

        printf("\n\t\t\t!!  queue is empty  !!\n");

    }

    else if(r==f)

    {

        printf("%d is deleted\n",queue[r]);

        r = f = -1;

    }

    else if(r==0)

    {

        printf("%d is deleted\n",queue[r]);

        r=n-1;

    }

    else

    {

        printf("%d is deleted\n",queue[r]);

        r--;

    }


}



void display()

{

    int i;



    if(f==-1 && r==-1)

    {

        printf("\n\t\t\t!!  queue is empty  !!\n");

    }

    else if(f<=r)

    {

        for(i=f; i<=r; i++)

        {

            printf("%d\n",queue[i]);

        }

    }

    else

    {

        for(i=f; i<=n-1; i++)

        {

            printf("%d\n",queue[i]);


        }

        for(i=0; i<=r; i++)

        {

            printf("%d\n",queue[i]);

        }

    }

}



void get_front()

{

    if(f==-1 && r==-1)

    {

        printf("\n\t\t\t!!  queue is empty  !!\n");

    }

    else

    {

        printf("in queue front element is: %d\n",queue[f]);

    }

}



void get_rear()

{

    if(r==-1 && f==-1)

    {

        printf("\n\t\t\t!!  queue is empty  !!\n");

    }

    else

    {

        printf("in queue rear element is: %d\n",queue[r]);

    }

}



void is_full()

{

    if((f==0 && r==n-1) || (r+1 == f))

    {

        printf("\n\t\t\t\t!!  true  !!\n");

    }

    else

    {

        printf("\n\t\t\t\t!!  false  !!\n");

    }

}



void is_empty()

{

    if(f==-1 && r==-1)

    {

        printf("\n\t\t\t\t!!  true  !!\n");

    }

    else

    {

        printf("\n\t\t\t\t!!  false  !!\n");

    }

}




No comments:

Post a Comment

python programs

1. sum of two number