queue
Fri Sep 27 2024 12:46:00 GMT+0000 (Coordinated Universal Time)
Saved by @k_vaghasiya
#include <stdio.h>
#include <stdlib.h>
struct Queue
{
int size;
int f;
int r;
int *arr;
};
int isempty(struct Queue *q)
{
if (q->r == q->f)
{
return 1;
}
else
{
return 0;
}
}
int isfull(struct Queue *q)
{
if (q->r == q->size - 1)
{
return 1;
}
else
{
return 0;
}
}
void enqueue(struct Queue *q, int val)
{
if (isfull(q))
{
printf("this Queue is full");
}
else
{
q->r++;
q->arr[q->r] = val;
}
}
int dequeue(struct Queue *q)
{
int a = -1;
if (isempty(q))
{
printf("this Queue is empty\n");
}
else
{
q->f++;
a = q->arr[q->f];
}
}
int peek(struct Queue* q) {
if (isempty(q)) {
printf("Queue is empty\n");
return -1;
}
return q->arr[q->f + 1];
}
void printQueue(struct Queue *q)
{
if (isempty(q))
{
printf("Queue is empty\n");
return;
}
printf("Queue: ");
for (int i = q->f + 1; i <= q->r; i++)
{
printf("%d ", q->arr[i]);
}
printf("\n");
}
int main()
{
struct Queue q;
q.size = 10;
q.f = -1;
q.r = -1;
q.arr = (int *)malloc(q.size * sizeof(int));
printf("before enqueue %d\n", isfull(&q));
printf("before enqueue %d\n", isempty(&q));
enqueue(&q, 12);
enqueue(&q, 15);
enqueue(&q, 18);
enqueue(&q, 25);
enqueue(&q, 30);
enqueue(&q, 28);
enqueue(&q, 11);
enqueue(&q, 12);
// enqueue
printQueue(&q);
printf("after enqueue %d\n", isfull(&q));
printf("after enqueue %d\n", isempty(&q));
printf("Front element peek: %d\n", peek(&q));
printf("dequeue element %d\n", dequeue(&q));
printf("dequeue element %d\n", dequeue(&q));
printf("dequeue element %d\n", dequeue(&q));
printf("dequeue element %d\n", dequeue(&q));
// printf("dequeue element %d\n", dequeue(&q));
printQueue(&q);
if (isempty(&q))
{
printf("Queue is empty\n");
}
if (isfull(&q))
{
printf("Queue is full\n");
}
return 0;
}



Comments