Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
3
Indexable
#include <stdio.h>
#include <stdlib.h>
struct Queue
{
    int size;
    int f;
    int r;
    int *arr;
};
int isFull(struct Queue *q)
{
    if (q->r == q->size - 1)
        return 1;
    return 0;
}
int isEmpty(struct Queue *q)
{
    if (q->r == q->f)
        return 1;
    return 0;
}
void enqueue(struct Queue *q, int val)
{
    if (isFull(q))
    {
        printf("This Queue is Full ");
    }
    else
    {
        q->r = q->r + 1;
        q->arr[q->r] = val;
    }
}
void dequeue(struct Queue *q)
{
    int a = 1;
    if (q->f == q->r) // IsEmpty()
    {
        printf("No element to queue");
    }
    else
    {
        q->f = q->f + 1;
        a = q->arr[q->f];
        // return a;
        printf("The value of the dequeue is %d\n", a);
    }
}

int main()
{
    struct Queue *q;
    q->size = 10;
    q->f = -1;
    q->r = -1;

    q->arr = (int *)malloc(q->size * sizeof(int));
    // if (isEmpty(q))
    // {
    //     printf("Queue is Empty");
    // }
    enqueue(q, 12);
    enqueue(q, 16);
    enqueue(q, 15);
    enqueue(q, 14);
    enqueue(q, 3);
    enqueue(q, 2);
    enqueue(q, 15);
    enqueue(q, 14);
    enqueue(q, 3);
    enqueue(q, 2);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);
    dequeue(q);

    if (isFull(q))
    {
        printf("Queue is Full");
    }
}