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");

    }

}




Circular Queue in C language



#include<stdio.h>

#include<conio.h>

#define n 5


void enqueue();

void dequeue();

void display();


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


// --> f means front...

// --> r means rear...


void main()

{

    int ch;

    clrscr();


    printf("1.enqueue\n2.dequeue\n3.display\n4.exit\n");

    do

    {

        printf("\nenter your choice: ");

        scanf("%d",&ch);


        switch(ch)

        {
            case 1: enqueue();

            break;


            case 2: dequeue();

            break;


            case 3: display();

            break;


            case 4: exit(0);


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

            break;

        }

    }while(ch != 4);

}


void enqueue()

{

    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 a value: ");

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

    }

    else

    {

        r++;

        printf("enter value: ");

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

    }

}


void dequeue()

{

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

    {

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

    }

    else if(f == r)

    {

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

        f = r = -1;

    }

    else if(f == n-1)

    {

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

        f=0;

    }

    else

    {

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

        f++;

    }

}


void display()

{

    int i;


    if(r==-1 && f==-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]);

        }

    }

}


Simple Queue in C language



#include<stdio.h>

#include<conio.h>

#define n 5



void enqueue();

void dequeue();

void display();


int queue[n],rear=-1,front=-1;


void main()

{

    int ch;

    clrscr();


    printf("1.enqueue\n2.dequeue\n3.display\n4.exit\n");


    do

    {
        printf("\nenter your choice: ");

        scanf("%d",&ch);


        switch(ch)

        {

            case 1: enqueue();

            break;


            case 2: dequeue();

            break;


            case 3: display();

            break;


            case 4: exit(0);


            default: printf("\nenter valid choice\n");

            break;
        }

    }while(ch!=4);

}



void enqueue()

{

    if(rear==-1 && front==-1)

    {

        rear = front = 0;

        printf("enter value: ");

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

    }

    else if(rear == n-1)

    {

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

    }

    else

    {

        rear++;

        printf("enter value: ");


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

    }

}

void dequeue()

{

    if(front==-1 && rear==-1)

    {

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

    }

    else if(front==rear)

    {
        printf("%d is deleted successfully\n",queue[front]);

        front=rear=-1;

    }

    else

    {

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

        front++;

    }
}


void display()

{

    int i;


    if(front==-1 && rear==-1)

    {

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

    }

    else

    {

        for(i=front; i<=rear; i++)

        {

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

        }

    }

}

 


python programs

1. sum of two number