Advertisement

WRITE A PROGRAM OF CIRCULAR QUEUE OPERATION IN C LANGUAGE


PROGRAM OF CIRCULAR QUEUE OPERATION

IN C LANGUAGE


#include<stdio.h>

struct cqueue
{
    int size;
    int f;
    int r;
    int *arr;
};

int isEmpty(struct cqueue *q){
    if(q->r==q->f){
        return 1;
    }
    return 0;
}

int isFull(struct cqueue *q){
    if((q->r+1)%q->size==q->f){
        return 1;
    }
    return 0;
}

void enqueue(struct cqueue *qint val){
    if(isFull(q)){
        printf("This Queue is full\n");
    }
    else{
        q->r=(q->r+1)%q->size;
        q->arr[q->r] = val;
        printf("Enqued element: %d\n"val);
    }
}

int dequeue(struct cqueue *q){
    int a = -1;
    if(isEmpty(q)){
        printf("This Queue is empty\n");
    }
    else{
        q->f=(q->f+1)%q->size;
        a = q->arr[q->f]; 
    }
    return a;
}

int main(){
    struct cqueue q;
    q.size = 4;
    q.f = q.r = 0;
    q.arr = (int*) malloc(q.size*sizeof(int));
    
    // Enqueue few elements
    enqueue(&q12);
    enqueue(&q15);
    enqueue(&q1); 
    printf("Dequeuing element %d\n"dequeue(&q));
    printf("Dequeuing element %d\n"dequeue(&q));
    printf("Dequeuing element %d\n"dequeue(&q)); 
    // enqueue(&q, 45);
    // enqueue(&q, 45);
    // enqueue(&q, 45);

    // if(isEmpty(&q)){
    //     printf("Queue is empty\n");
    // }
    // if(isFull(&q)){
    //     printf("Queue is full\n");
    // }

    return 0;
}


Post a Comment

0 Comments