Sunday, 17 June 2012

Implementation of Circular Queue in c

Implementation of Circular Queue in c



#include<stdio.h>
#include<conio.h>
#include<string.h>
#define size 5
int f=-1,r=-1,a[5];
void enqueue(int);
int dequeue(void);
void main()
{
 clrscr();
 enqueue(10);
 enqueue(20);
 enqueue(30);
 enqueue(40);
 enqueue(50);
dequeue();
dequeue();
 enqueue(60);
 enqueue(70);
getch();
}

void enqueue(int y)
{
            if(f==0 && r==size)
            {
                        printf("\nQueue is full");
            }
            else if(f!=0 && r==size)
            {
                        r=0;
                        a[r]=y;
                        printf("\nValue enqueued is %d at a[%d]",a[r++],r);
            }
            else if(f==-1 && r==-1)          
            {                         
                        f=0;r=0;                   
                        a[r]=y;
                        printf("\nValue enqueued is %d at a[%d]",a[r++],r);
            }
            else if(f==r)
            {
                        printf("\nQueue is full");
            }
            else
            {
                        a[r]=y;
                        printf("\nValue enqueued is %d at a[%d]",a[r++],r);
            }
}

int dequeue()
{
            if(f==r)
            {
                        f=-1;r=-1;
                        printf("\nQueue is underflow");
                        return 0;
            }
            else
            {
                        printf("\nDequeued value is %d at a[%d]",a[f],f);
                        return a[f++];              
            }                                 
}                          

No comments:

Post a Comment