Wednesday 11 February 2015

program for dequeue

#include<stdio.h>
#include<conio.h>
#define MAX 50
struct queue
{
      int a[MAX];
      int rear,front;
}
st;
void enqueuefront(int x);
void enqueuerear(int x);
void dequeuefront();
void dequeuerear();
void display();
void main()
{
      int op,x;
      st.rear=st.front=-1;
      do
      {
            printf("\n1.Insertion from rear\n2.Insertion from front\n3.Deletion from rear\n4.Deletion from front\n5.Print\n6.Exit");
            printf("\nEnter choice");
            scanf("^D",&op);
            switch(op)
            {
                  case 1:if((st.rear+1)%MAX==st.front)
                  printf("\nFull queue");
                  else
                  enqueuerear(x);
                  break;
                  case 2:if((st.rear+1)%MAX==st.front)
                  printf("\nFull queue");
                  else
                  enqueuefront(x);
                  break;
                  case 3:if(st.rear==-1)
                  printf("\nEmpty queue");
                  else
                  {
                        dequeuerear();
                  }
                  break;
                  case 4:if(st.front==-1)
                  printf("\nEmpty queue");
                  else
                  {
                        dequeuefront();
                  }
                  break;
                  case 5:display();
                  break;
            }
      }while(op!=6);
      getch();
}
void enqueuerear(int x)
{
      printf("\nEnter data:");
      scanf("%d",&x);
      if(st.rear==-1&&st.front==-1)
      {
            st.rear=0;st.front=0;
            st.a[0]=x;
      }
      else
      {
            st.rear=(st.rear+1)%MAX;
            st.a[st.rear]=x;
      }
}
void enqueuefront(int x)
{
      printf("\nEnter data:");
      scanf("%d",&x);
      if(st.rear==-1&&st.front==-1)
      {
            st.rear=0;st.front=0;
            st.a[0]=x;
      }
      else
      {
            st.front=(st.front-1+MAX)%MAX;
            st.a[st.front]=x;
      }
}
void dequeuerear()
{
      int y;
      if(st.rear==st.front)
      {
            y=st.a[st.rear];
            st.front=-1;
            st.rear=-1;
      }
      else
      {
            y=st.a[st.rear];
            st.rear=(st.rear-1+MAX)%MAX;
      }
            printf("\nDeleted element=%d",y);
      }
void dequeuefront()
{
      int y;
      if(st.rear==st.front)
      {
            y=st.a[st.front];
            st.front=-1;
            st.rear=-1;
      }
      else
      {
            y=st.a[st.front];
            st.front=(st.front+1)%MAX;
      }
            printf("\nDeleted element=%d",y);
      }
void display()
{
      int i;
      if(st.rear==-1&&st.front==-1)
      printf("\nEmpty queue");
      else
      {
            printf("\nQueue is:");
            i=st.front;
            while(i!=st.rear)
            {
                  printf("<%d>",st.a[i]);
                  i=(i+1)%MAX;
            }
            printf("<%d>",st.a[st.rear]);
      }
}

      

No comments:

Post a Comment