wap for implementation of circular queue

7
//WAP for implementation of circular queue... #include<conio.h> #include<stdio.h> int flag; void main() { void push(int queue[],int *rear,int *front,int n);//*front void pop(int queue[],int *front,int *rear,int n);//n void display(int stack[],int *front,int *rear); int queue[30],front,rear,ch; front=-1; rear=-1; flag=0; clrscr(); printf("enter choice...\n\n"); printf("1::push\n2::pop\n3::display\n\n"); scanf("%d",&ch); label: switch(ch) { case 1: push(queue,&rear,&front,10); if(flag==1) printf("queue overflow\n"); else

Upload: sunny-singh

Post on 06-Apr-2015

95 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WAP for Implementation of Circular Queue

//WAP for implementation of circular queue...

#include<conio.h>

#include<stdio.h>

int flag;

void main()

{

void push(int queue[],int *rear,int *front,int n);//*front

void pop(int queue[],int *front,int *rear,int n);//n

void display(int stack[],int *front,int *rear);

int queue[30],front,rear,ch;

front=-1;

rear=-1;

flag=0;

clrscr();

printf("enter choice...\n\n");

printf("1::push\n2::pop\n3::display\n\n");

scanf("%d",&ch);

label:

switch(ch)

{

case 1: push(queue,&rear,&front,10);

if(flag==1)

printf("queue overflow\n");

else

printf("to push more values press 1\n");

Page 2: WAP for Implementation of Circular Queue

printf("to pop values press 2\n");

printf("to display the queue press 3\n");

printf("to EXIT press 0\n\n");

scanf("%d",&ch);

if(ch==0)

break;

else

goto label;

case 2:pop(queue,&front,&rear,10);

if(flag==2)

printf("queue is empty\n");

else

printf("to pop more values press 2\n");

printf("to push values press 1\n");

printf("to display the queue press 3\n");

printf("to EXIT press 0\n\n");

scanf("%d",&ch);

if(ch==0)

break;

else

goto label;

case 3:display(queue,&front,&rear);

printf("to push values press 1\n");

printf("to pop values press 2\n");

Page 3: WAP for Implementation of Circular Queue

printf("to display the queue press 3\n");

printf("to EXIT press 0\n\n");

scanf("%d",&ch);

if(ch==0)

break;

else

goto label;

}

getch();

}

void push(int queue[],int *rear,int *front,int n) //*front

{

int val;

printf("enter value to be pushed\n");

scanf("%d",&val);

if((*rear)<(n-1)&&(*rear)>=(*front)&&(*front)!=-1)

{

queue[++(*rear)]=val;

printf("rear = %d\n",*rear);

}

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

{

queue[++(*rear)]=val;

Page 4: WAP for Implementation of Circular Queue

printf("rear = %d\n",*rear);

(*front)++;

}

else if(*rear>=(n-1)&&(*front)>0)

{

flag=0;

*rear=0;

queue[*rear]=val;

printf("rear = %d\n",*rear);

}

else if(*rear<(*front-1))

{

flag=0;

queue[++(*rear)]=val;

printf("rear = %d\n",*rear);

}

else

{

printf("queue overflow\n\n");

flag=1;

}

}

void pop(int queue[],int *front,int *rear,int n) //n

{

Page 5: WAP for Implementation of Circular Queue

int val;

if((*front)<=(n-1)&&(*front)<(*rear))

{

val=queue[(*front)];

printf("popped value is:: %d\n",val);

printf("front = %d\n",(*front)+1);

(*front)++;

}

else if((*front)==(*rear)&&(*front)!=-1)

{

val=queue[(*front)];

printf("popped value is:: %d\n",val);

printf("front = %d\n",(*front)+1);

*front=-1;

*rear=-1;

flag=0;

}

else if((*front)>(*rear)&&(*front)<=(n-1))

{

val=queue[(*front)];

printf("popped value is:: %d\n",val);

printf("front = %d\n",(*front)+1);

flag=0;

(*front)++;

}

Page 6: WAP for Implementation of Circular Queue

else if((*front)==n)

{

(*front)=0;

val=queue[(*front)];

printf("popped value is:: %d\n",val);

printf("front = %d\n",(*front)+1);

flag=0;

(*front)++;

}

else

{

printf("queue is empty\n");

flag=2;

}

}

void display(int queue[],int *front,int *rear)

{

int i;

printf ("\nthe queue is::\n");

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

printf("queue is empty\n");

if(*front<*rear)

Page 7: WAP for Implementation of Circular Queue

{

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

{

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

}

}

if((*rear)<(*front))

{

for(i=(*front);i<10;i++)

{

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

}

for(i=0;i<=(*rear);i++)

{

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

}

}

}