Thursday, 16 November 2017

Double ended queue using array in C

#include<stdio.h>
#include<stdlib.h>
#define SIZE 5

int a[10],front=-1,rear=-1;
void insEnd(int item)
{

    if(rear>=SIZE-1)
    {
        printf("overflow\n");
    }
    else
    {
        if(front==-1)
        {
            front++;
            rear++;
        }
        else
        {
            rear=rear+1;
        }
    a[rear]=item;
    printf("Inserted item is %d\n",a[rear]);
    }
}
void insBeg(int item)
{

        if(front==-1)
        {
            front=0;
            a[++rear]=item;
            printf("inserted element is %d\n",item);
        }
        else if(front!=0)
        {
            a[--front]=item;
            printf("inserted element is %d\n",item);

        }


}
void display()
{
    int i;
    if(front==-1)
    {
        printf("Dequeue is empty\n");
    }
    else
    {
        for(i=front;i<=rear;i++)
        {
            printf("%d  ",a[i]);
        }
    }
}
void deleteBeg()
{
        if(front==-1)
        {
            printf("Dequeue is empty\n");
            return;
        }
        else
        {
            printf("the deleted element is %d",a[front]);
            if(front==rear)
            {
                front=rear=-1;
                return;
            }
            else
                front=front+1;
        }
}
void deleteEnd()
{
        if(front==-1)
        {
            printf("deletion is not possible dequeue is empty\n");
            return;
        }
        else
        {
            printf("the deleted element is %d",a[rear]);
            if(front==rear)
            {
                front=rear=-1;
            }
            else
                rear=rear-1;
        }
}
int main()
{
    int ch,item;
    do
    {

        printf("\n1_insert at beginning\n");
        printf("2_insert at end");
        printf("\n 3_display");
        printf("\n 4_deletion from front");
        printf("\n 5_deletion from rear");
        printf("\n 6_exit");
        printf("\n enter your choice\n");
        scanf("%d",&ch);
        switch(ch)
        {
            case 1:printf("enter the element to be inserted\n");
                          scanf("%d",&item);
                          insBeg(item);
                          break;
            case 2:printf("enter the element to be inserted\n");
                         scanf("%d",&item);
                         insEnd(item);
                         break;
            case 3:display();
                        break;
            case 4:deleteBeg();
                        break;
            case 5:deleteEnd();
                      break;
            case 6:exit(0);
                        break;
            default:printf("invalid choice\n");
                    break;
        }
    }
    while(ch!=6);
}

All In One Blog

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

0 comments:

Post a Comment

 

Copyright @ 2015